403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_statistics.cpython-313.opt-1.pyc
�

��i���H�SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
Jr SSKJrJr SSKJr SSKJr SSKrSurr\\-S:HrS	rS
rSrSzSjr"S
S5r\R:"SS/S9r\R:"SS/S9r"SS\R@5r!"SS\R@5r""SS\R@5r#"SS\R@5r$"SS\R@5r%"SS\R@5r&"SS \R@5r'"S!S"\R@5r("S#S$\R@5r)"S%S&\R@5r*"S'S(\R@5r+"S)S*\R@5r,"S+S,\R@5r-"S-S.\R@5r."S/S0\R@5r/"S1S2\R@5r0"S3S4\R@5r1"S5S6\R@5r2"S7S85r3"S9S:5r4"S;S<\3\45r5"S=S>\"5r6"S?S@\"5r7"SASB\"5r8"SCSD\35r9"SESF\"\9\45r:"SGSH\"\9\45r;"SISJ\"\95r<"SKSL\"\45r="SMSN\<\45r>"SOSP\<\45r?"SQSR\<5r@"SSST\"\9\45rA"SUSV\R@5rB"SWSX\R@5rC"SYSZ\35rD"S[S\\D\"\45rE"S]S^\D\"\45rF"S_S`\D\"5rG"SaSb\R@5rH"ScSd\D\"5rI"SeSf\R@5rJ"SgSh\R@5rK"SiSj\R@5rL"SkSl\R@5rM"SmSn\R@5rN"SoSp\R@5rO"SqSr5rP"SsSt\R@\P5rQ\R�"\Su5"SvSw\R@\P55rSSxrT\USy:Xa\R�"5 gg){z_Test suite for statistics module, including helper NumericTestCase and
approx_equal function.

�N)�support)�
import_helper�requires_IEEE_754)�Decimal��Fraction)g��7y�ACg�):��@g��7y�ACc�0�[R"SU5$)z:Return -1.0 for negatives, including -0.0, otherwise +1.0.�)�math�copysign��xs �)C:\Python313\\Lib\test\test_statistics.py�signr%s���=�=��A���c�.�[U5[U5Lag[U[5(a3[R"U5=(a [R"U5$UR5SnUR5SnX#:H=(a US;$)a�Return True if a and b are both the same kind of NAN.

>>> _nan_equal(Decimal('NAN'), Decimal('NAN'))
True
>>> _nan_equal(Decimal('sNAN'), Decimal('sNAN'))
True
>>> _nan_equal(Decimal('NAN'), Decimal('sNAN'))
False
>>> _nan_equal(Decimal(42), Decimal('NAN'))
False

>>> _nan_equal(float('NAN'), float('NAN'))
True
>>> _nan_equal(float('NAN'), 0.5)
False

>>> _nan_equal(float('NAN'), Decimal('NAN'))
False

NAN payloads are not compared.
F�)�n�N)�type�
isinstance�floatr�isnan�as_tuple)�a�b�aexp�bexps    r�
_nan_equalr)so��,�A�w�d�1�g����!�U����z�z�!�}�.����A��.��:�:�<��?�D��:�:�<��?�D��L�2�t�z�1�2rc��[[U5[U55n[X-
5nU(aX2-O
[S5nX44$)z�Return the absolute and relative errors between two numbers.

>>> _calc_errors(100, 75)
(25, 0.25)
>>> _calc_errors(100, 100)
(0, 0.0)

Returns the (absolute error, relative error) between the two arguments.
�inf)�max�absr)�actual�expected�base�abs_err�rel_errs     r�_calc_errorsr)Hs=���s�6�{�C��M�*�D��&�#�$�G�"�g�l��e��G���rc
��US:dUS:a[S5e[R"U5(d[R"U5(agX:Xag[R"U5(d[R"U5(ag[	X-
5n[X#[[	U5[	U55-5nXE:*$)aBapprox_equal(x, y [, tol [, rel]]) => True|False

Return True if numbers x and y are approximately equal, to within some
margin of error, otherwise return False. Numbers which compare equal
will also compare approximately equal.

x is approximately equal to y if the difference between them is less than
an absolute error tol or a relative error rel, whichever is bigger.

If given, both tol and rel must be finite, non-negative numbers. If not
given, default values are tol=1e-12 and rel=1e-7.

>>> approx_equal(1.2589, 1.2587, tol=0.0003, rel=0)
True
>>> approx_equal(1.2589, 1.2587, tol=0.0001, rel=0)
False

Absolute error is defined as abs(x-y); if that is less than or equal to
tol, x and y are considered approximately equal.

Relative error is defined as abs((x-y)/x) or abs((x-y)/y), whichever is
smaller, provided x or y are not zero. If that figure is less than or
equal to rel, x and y are considered approximately equal.

Complex numbers are not directly supported. If you wish to compare to
complex numbers, extract their real and imaginary parts and compare them
individually.

NANs always compare unequal, even with themselves. Infinities compare
approximately equal if they have the same sign (both positive or both
negative). Infinities with different signs compare unequal; so do
comparisons of infinities with finite numbers.
rz%error tolerances must be non-negativeFT)�
ValueErrorrr�isinfr#r")r�y�tol�rel�actual_error�
allowed_errors      r�approx_equalr2Xs���D�Q�w�#��'��@�A�A��z�z�!�}�}��
�
�1�
�
���v���z�z�!�}�}��
�
�1�
�
���q�u�:�L����S��V�S��V�!4�4�5�M��(�(rc��\rSrSrSrSrg)�
_DoNothing�aE
When doing numeric work, especially with floats, exact equality is often
not what you want. Due to round-off error, it is often a bad idea to try
to compare floats with equality. Instead the usual procedure is to test
them with some (hopefully small!) allowance for error.

The ``approx_equal`` function allows you to specify either an absolute
error tolerance, or a relative error, or both.

Absolute error tolerances are simple, but you need to know the magnitude
of the quantities being compared:

>>> approx_equal(12.345, 12.346, tol=1e-3)
True
>>> approx_equal(12.345e6, 12.346e6, tol=1e-3)  # tol is too small.
False

Relative errors are more suitable when the values you are comparing can
vary in magnitude:

>>> approx_equal(12.345, 12.346, rel=1e-4)
True
>>> approx_equal(12.345e6, 12.346e6, rel=1e-4)
True

but a naive implementation of relative error testing can run into trouble
around zero.

If you supply both an absolute tolerance and a relative error, the
comparison succeeds if either individual test succeeds:

>>> approx_equal(12.345e6, 12.346e6, tol=1e-3, rel=1e-4)
True

�N)�__name__�
__module__�__qualname__�__firstlineno__�__doc__�__static_attributes__r6rrr4r4�s
��"�F	rr4�
statistics�_statistics)�blocked)�freshc�R�\rSrSrS/rSr\R"\S5S5r	Sr
g)�TestModules���_normal_dist_inv_cdfc�~�URH-nUR[[U5RS5 M/ g�Nr=)�
func_names�assertEqual�getattr�
py_statisticsr8��self�fnames  r�test_py_functions�TestModules.test_py_functions�s-���_�_�E����W�]�E�:�E�E�|�T�%r�requires _statisticsc�~�URH-nUR[[U5RS5 M/ g)Nr>)rGrHrI�c_statisticsr8rKs  r�test_c_functions�TestModules.test_c_functions�s-���_�_�E����W�\�5�9�D�D�m�T�%rr6N)r7r8r9r:rGrN�unittest�
skipUnlessrRrSr<r6rrrBrB�s4��(�)�J�U�����'=�>�U�?�UrrBc�L�\rSrSrSrS=rrS
SjrSrSSjr	\
S5rS	rg)�NumericTestCase��z�Unit test class for numeric work.

This subclasses TestCase. In addition to the standard method
``TestCase.assertAlmostEqual``,  ``assertApproxEqual`` is provided.
rNc�*�UcURnUcURn[U[RR
5(a6[U[RR
5(a
URnOURnU"XX4U5 g)a�Test passes if ``first`` and ``second`` are approximately equal.

This test passes if ``first`` and ``second`` are equal to
within ``tol``, an absolute error, or ``rel``, a relative error.

If either ``tol`` or ``rel`` are None or not given, they default to
test attributes of the same name (by default, 0).

The objects may be either numbers, or sequences of numbers. Sequences
are tested element-by-element.

>>> class MyTest(NumericTestCase):
...     def test_number(self):
...         x = 1.0/6
...         y = sum([x]*6)
...         self.assertApproxEqual(y, 1.0, tol=1e-15)
...     def test_sequence(self):
...         a = [1.001, 1.001e-10, 1.001e10]
...         b = [1.0, 1e-10, 1e10]
...         self.assertApproxEqual(a, b, rel=1e-3)
...
>>> import unittest
>>> from io import StringIO  # Suppress test runner output.
>>> suite = unittest.TestLoader().loadTestsFromTestCase(MyTest)
>>> unittest.TextTestRunner(stream=StringIO()).run(suite)
<unittest.runner.TextTestResult run=2 errors=0 failures=0>

N)r.r/r�collections�abc�Sequence�_check_approx_seq�_check_approx_num)rL�first�secondr.r/�msg�checks       r�assertApproxEqual�!NumericTestCase.assertApproxEqual�sp��>�;��(�(�C��;��(�(�C��5�+�/�/�":�":�;�;��6�;�?�?�#;�#;�<�<��*�*�E��*�*�E�
�e�S�s�+rc	��[U5[U5:wa;S[U5[U54-nURXV5nURU5e[[	X55Hunup�URX�X4XW5 M g)Nz0sequences differ in length: %d items != %d items)�len�_formatMessage�failureException�	enumerate�zipr_)
rLr`rar.r/rb�standardMsg�ir�es
          rr^�!NumericTestCase._check_approx_seqs~���u�:��V��$�B��u�:�s�6�{�+�,�
��%�%�c�7�C��'�'��,�,�!�#�e�"4�5�H�A�u���"�"�1��3�:�6rc��[XX45(agURXX4U5nURXW5nURU5e�N)r2�_make_std_err_msgrhri)rLr`rar.r/rb�idxrls        rr_�!NumericTestCase._check_approx_numsG����s�0�0���,�,�U�C�c�J���!�!�#�3���#�#�C�(�(rc�H�SnUb	SU-nXe-n[X5upxXPXX7U4-$)Nzk  %r != %r
  values differ by more than tol=%r and rel=%r
  -> absolute error = %r
  -> relative error = %rz,numeric sequences first differ at index %d.
)r))	r`rar.r/rs�template�headerr'r(s	         rrr�!NumericTestCase._make_std_err_msgsD��

'�	��?�D�s�J�F��(�H�'��6����&�s�W�E�E�Err6)NNNrq)
r7r8r9r:r;r.r/rdr^r_�staticmethodrrr<r6rrrXrX�s=����M�C�#�:>�*,�X	;�)��F��FrrXc��\rSrSrSrSrSrg)�TestSigni/z5Test that the helper function sign() works correctly.c�p�UR[S5S5 UR[S5S5 g)N�r
�����)rHr�rLs r�
testZeroes�TestSign.testZeroes1s*������c��B�'�����d��R�(rr6N)r7r8r9r:r;r�r<r6rrr{r{/s
��?�)rr{c�,�\rSrSrSrSrSrSrSrg)�ApproxEqualSymmetryTesti9c��SSS[S5[SS5/nSSS	[S
5[SS5/n[X5Hup4URX45 M g)Ni�	gfffff�B@gfffff�(�z2.54��6i�	g������B@gR����(�z2.59�)rrrk�do_relative_symmetry)rL�args1�args2rrs     r�test_relative_symmetry�.ApproxEqualSymmetryTest.test_relative_symmetry<sY���t�V�W�V�_�h�r�2�6F�G���t�V�W�V�_�h�r�2�6F�G����%�D�A��%�%�a�+�&rc	���[X5[X5p!X!-
n[X1-5[X2-5pTXE-S-nUR[	XSUS95 UR[	X!SUS95 g)Nrr�r.r/)�minr"r#�
assertTruer2)rLrr�delta�rel_err1�rel_err2r/s       rr��,ApproxEqualSymmetryTest.do_relative_symmetryLsd���1�y�#�a�)�1���� ���\�3�u�w�<�(��"�A�%��	
����Q�q�c�:�;�����Q�q�c�:�;rc	���/SQnSnUH�n[[[[4H�nU"U5S-nXR-n[	U[XV5-5nUR
XVX'S9 UR
XVUS-SU-S9 UR
XVUS-
US-S9 UR
XVX'S-S9 UR
XVUS-
US9 UR
XVUS-
SU-S9 UR
XUSSS9 UR
XVSSS9 M� M� g)N)i�������ki�mr�dr�r
r)�intrrrr#r"�do_symmetry_test)rL�argsr�r�type_rr-�rs        r�
test_symmetry�%ApproxEqualSymmetryTest.test_symmetryXs��'�����A��u�g�x�8���!�H�S�L���I����c�!�i��(���%�%�a��%�=��%�%�a��a��Q�q�S�%�A��%�%�a��a��Q�q�S�%�A��%�%�a��Q�3�%�?��%�%�a��a��Q�%�?��%�%�a��a��Q�q�S�%�A��%�%�a��q�%�9��%�%�a��q�%�9�#9�rc
�~�Sn[XX45n[X!X45nURXgURXX4455 g)Nz+approx_equal comparisons don't match for %r)r2rH�format)rLrrr.r/rv�flag1�flag2s        rr��(ApproxEqualSymmetryTest.do_symmetry_testps=��@���Q�3�,���Q�3�,������x����c�7G�'H�Irr6N)	r7r8r9r:r�r�r�r�r<r6rrr�r�9s��,� 
<�:�0Jrr�c�J�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)
�ApproxEqualExactTestiwc��[XX#S9nURUSU-5 [U*U*X#S9nURUSU*-5 g)Nr�zequality failure for x=%r)r2r�)rLrr.r/�results     r�do_exactly_equal_test�*ApproxEqualExactTest.do_exactly_equal_test}sJ���a��5������ ;�a� ?�@��q�b�1�"�#�7������ ;�q�b� @�Arc�<�SHnURUSS5 M g)N)�*iMi~:��iiU�
i�r�r��rLrs  r�test_exactly_equal_ints�,ApproxEqualExactTest.test_exactly_equal_ints�s��=�A��&�&�q�!�Q�/�>rc�<�SHnURUSS5 M g)N)g�z�G��?g/�$���?g�����e�@g7@gpf@g!�rh��Q@gB`��"KB@rr��rLrs  r�test_exactly_equal_floats�.ApproxEqualExactTest.test_exactly_equal_floats�s��E�A��&�&�q�!�Q�/�Frc	��[nU"SS5U"S5U"SS5U"SS5U"SS	5U"SS54HnURUSS5 M g)
Nr
rrr���	��#�$)rr��rL�F�fs   r�test_exactly_equal_fractions�1ApproxEqualExactTest.test_exactly_equal_fractions�sS�����A�q�'�1�Q�4��1�a��!�A�q�'�1�R��9�a��1�g�F�A��&�&�q�!�Q�/�Grc�x�[n[USR55HnURUSS5 M g)Nz8.2 31.274 912.04 16.745 1.2047r)r�map�splitr�)rL�D�ds   r�test_exactly_equal_decimals�0ApproxEqualExactTest.test_exactly_equal_decimals�s5�����Q�9�?�?�A�B�A��&�&�q�!�Q�/�Crc��SHKnURUSS5 URUS-SS5 [US5nURUSS5 MM g)N)��i\i�����{�G�z�?r�
i�)r�r)rLrr�s   r�test_exactly_equal_absolute�0ApproxEqualExactTest.test_exactly_equal_absolute�sR��/�A��&�&�q�$��2��&�&�q��t�T�1�5���D�!�A��&�&�q�$��2�0rc��UR[S5[S5S5 UR[S5*[S5S5 g)Nz3.571�0.01rz81.3971)r�rr�s r�$test_exactly_equal_absolute_decimals�9ApproxEqualExactTest.test_exactly_equal_absolute_decimals�s;���"�"�7�7�#3�W�V�_�a�H��"�"�G�I�$6�#6�����Krc��SSS[SS54HnURUSS5 M UR[S5S[S	55 g)
Ni� g33333SY@g�z�G�r��rr�z11.68r��rr�rr�s  r�test_exactly_equal_relative�0ApproxEqualExactTest.test_exactly_equal_relative�sH����x��!�R��9�A��&�&�q�!�T�2�:��"�"�7�7�#3�Q����Hrc��SSS[SS54HnURUSS5 M [nURU"S5U"S	5U"S
55 g)Ni9�gˡE��0@g\��(h��r��皙�����?r�z7.2z0.1r�r�)rLrr�s   r�test_exactly_equal_both�,ApproxEqualExactTest.test_exactly_equal_both�sP�����(�1�a�.�9�A��&�&�q�#�t�4�:����"�"�1�U�8�Q�u�X�q��y�Arr6N)r7r8r9r:r�r�r�r�r�r�r�r�r�r<r6rrr�r�ws3��B�0�
0�
0�0�	3�L�
I�Brr�c�2�\rSrSrSrSrSrSrSrSr	g)	�ApproxEqualUnequalTesti�c�`�X*4H&n[X"S-SSS9nURUSU-5 M( g)Nr
rr�zinequality failure for x=%r)r2�assertFalse)rLrrr�s    r�do_exactly_unequal_test�.ApproxEqualUnequalTest.do_exactly_unequal_test�s8���R��A�!�!�q�S�a�Q�7�F����V�%B�Q�%F�G�rc�8�SHnURU5 M g)N)�i��i�i�iXC�r�r�s  r�test_exactly_unequal_ints�0ApproxEqualUnequalTest.test_exactly_unequal_ints�s��/�A��(�(��+�0rc�8�SHnURU5 M g)N)g��Q�#@g����[�@gfffff�G@gףp=
W"@g=
ףp=1@r�r�s  r�test_exactly_unequal_floats�2ApproxEqualUnequalTest.test_exactly_unequal_floats�s��3�A��(�(��+�4rc��[nU"SS5U"SS5U"SS5U"SS54HnURU5 M g)	Nr
r�r�r����eiς)rr�r�s   r�test_exactly_unequal_fractions�5ApproxEqualUnequalTest.test_exactly_unequal_fractions�s@�����A�q�'�1�Q��7�A�b�"�I�q��e�}�=�A��(�(��+�>rc�p�[[SR55HnURU5 M g)Nz!3.1415 298.12 3.47 18.996 0.00245)r�rr�r��rLr�s  r�test_exactly_unequal_decimals�4ApproxEqualUnequalTest.test_exactly_unequal_decimals�s,���W�A�G�G�I�J�A��(�(��+�Krr6N)
r7r8r9r:r�r�r�r�r�r<r6rrr�r��s��H�
,�
,�
,�,rr�c�t�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrg)�ApproxEqualInexactTesti�c
��SnX-X-
4HPnURX5nUR[XSU-SS9U5 UR[XUS-SS9U5 MR g)N�Test failure for x={!r}, y={!r}rrr��r�r�r2r��rLrr�rvr-rbs      r�do_approx_equal_abs_test�/ApproxEqualInexactTest.do_approx_equal_abs_test�s`��4���)�Q�Y�'�A��/�/�!�'�C��O�O�L��1�U�7��B�C�H����\�!�E�!�G��C�S�I�(rc�^�SH'nURUS5 URUS5 M) g)N)i��iI���i����r�rr
r��%i�i�&i6�jr�r�r�r�s  r�test_approx_equal_absolute_ints�6ApproxEqualInexactTest.test_approx_equal_absolute_ints�s-��J�A��)�)�!�R�0��)�)�!�Q�/�Krc��SH9nURUS5 URUS5 URUS5 M; g)N)	g�t��q�gfffffFX�g333333�g333333���?��?�333333@g�Q���@g�����ҭ@��?r��-C��6?rr�s  r�!test_approx_equal_absolute_floats�8ApproxEqualInexactTest.test_approx_equal_absolute_floats�s=��L�A��)�)�!�S�1��)�)�!�T�2��)�)�!�V�4�Mrc��[SS5n/SQnSU5H/nURX15 URU[U55 M1 g)Nr
�)i������r�rrr
r�r���"�Gc3�:# �UHn[US5v� M g7f)rNr)�.0rs  r�	<genexpr>�NApproxEqualInexactTest.test_approx_equal_absolute_fractions.<locals>.<genexpr>�s���6�:�a�(�1�b�/�/�:�s�)rr�r)rLr��
numeratorsr�s    r�$test_approx_equal_absolute_fractions�;ApproxEqualInexactTest.test_approx_equal_absolute_fractions�sC����B���@�
�6�:�6�A��)�)�!�3��)�)�!�U�5�\�:�7rc��[S5n[[SR55H'nURX!5 URU*U5 M) g)Nr�z1.0 3.5 36.08 61.79 7912.3648)rr�r�r�)rLr�r�s   r�#test_approx_equal_absolute_decimals�:ApproxEqualInexactTest.test_approx_equal_absolute_decimals�sG�������W�=�C�C�E�F�A��)�)�!�3��)�)�1�"�e�4�Grc	�:�UR[SSSSS95 g)Ng�h㈵��>g�h㈵��rrr�)r�r2r�s r�test_cross_zero�&ApproxEqualInexactTest.test_cross_zero�s������T�5�d��B�Crc
���SnUSU--USU-
-4HPnURX5nUR[XSSU-S9U5 UR[XSUS-S9U5 MR g)Nr�r
rrr�r�r�s      r�do_approx_equal_rel_test�/ApproxEqualInexactTest.do_approx_equal_rel_testsl��4���Q�u�W�+�q�!�E�'�{�+�A��/�/�!�'�C��O�O�L��1�!�E�'�B�C�H����\�!�A�5��7�C�S�I�,rc	��UR[SSSSS95 UR[SSSSS95 UR[SSSS	S95 UR[S
SSS	S95 UR[SSSS	S95 g)N�@�/rg
ףp=
�?r�g�G�z��?i�i��?i�i�)r�r2r�r�s r�test_approx_equal_relative_ints�6ApproxEqualInexactTest.test_approx_equal_relative_intssw������R����=�>�����R����=�>�����S�#�1�%�@�A�����S�#�1�%�@�A�����c�3�A�5�A�Brc�^�SH'nURUS5 URUS5 M) g)N)g{�G�Jf�皙������r�rg\��(|B@g��ʡE>�@g��x��@�{�G�z�?r)r"r�s  r�!test_approx_equal_relative_floats�8ApproxEqualInexactTest.test_approx_equal_relative_floatss-��E�A��)�)�!�T�2��)�)�!�V�4�Frc���[n[SS5nU"SS5U"SS5U"SS5U"SS	54H;nU[U54H'nURX45 URU*U5 M) M= g)
Nr�r��Tr���1�2�\�U)rrr")rLr�r�r�r�s     r�$test_approx_equal_relative_fractions�;ApproxEqualInexactTest.test_approx_equal_relative_fractionssp������A����A�r�(�A�b�"�I�q��R�y�!�B��)�<�A��U�5�\�*���-�-�a�3��-�-�q�b�!�4�+�=rc��[[SR55H:nURU[S55 URU*[S55 M< g)Nz$0.02 1.0 5.7 13.67 94.138 91027.9321�0.001�0.05)r�rr�r"r�s  r�#test_approx_equal_relative_decimals�:ApproxEqualInexactTest.test_approx_equal_relative_decimals$sI���W�D�J�J�L�M�A��)�)�!�W�W�-=�>��)�)�1�"�g�f�o�>�Nrc	�0�U(aUROURnU"[XUSS95 U(aUROURnU"[XSUS95 U(dU(aUROURnU"[XX4S95 g)Nrr�)r�r�r2)rLrrr.r/�tol_flag�rel_flagrcs        r�
do_check_both�$ApproxEqualInexactTest.do_check_both2sn��#+�����1A�1A��
�l�1�S�a�0�1�#+�����1A�1A��
�l�1�Q�C�0�1�$,�����t�?O�?O��
�l�1�S�2�3rc�\�URSSSSSS5 URSSSS	SS5 g)
N�R����@�+���@���Mbp?���W�8?Tg?5^�I��g%��C�����Mb`?g-C��6*?�r@r�s r�test_approx_equal_both1�.ApproxEqualInexactTest.test_approx_equal_both1:s2�����5�%����d�C����6�6�5�&�$��Erc�0�URSSSSSS5 g)NrCrDrEgV�F�?8?TFrHr�s r�test_approx_equal_both2�.ApproxEqualInexactTest.test_approx_equal_both2?s�����5�%����e�Drc�0�URSSSSSS5 g)NrCrD���MbP?rFFTrHr�s r�test_approx_equal_both3�.ApproxEqualInexactTest.test_approx_equal_both3Cs�����5�%����t�Drc�\�URSSSSSS5 URSSSS	SS5 g)
Ng=
ףp=@�@r�rOFg�Q��[�@g�(\��[�@r,giUMu�>rHr�s r�test_approx_equal_both4�.ApproxEqualInexactTest.test_approx_equal_both4Gs2�����4��t�U�E�5�A����6�6�4��u�e�Drr6N)r7r8r9r:r�rrrrrr"r(r-r6r;r@rIrLrPrTr<r6rrr�r��sZ��J�0�5�;�5�D�J�C�5�5�?�4�F�
E�E�Err�c�,�\rSrSrSrSrSrSrSrg)�ApproxEqualSpecialsTestiMc	��[[4H�nU"S5nUR[X"55 UR[X"SS55 UR[X"SS55 UR[U*U*55 UR	[X"*55 UR	[US55 M� g)Nr!rr
r���)rrr�r2r�)rLr�r!s   r�test_inf� ApproxEqualSpecialsTest.test_infPs����W�%�E���,�C��O�O�L��2�3��O�O�L��1�a�8�9��O�O�L��1�d�;�<��O�O�L�#���t�4�5����\�#�t�4�5����\�#�t�4�5�&rc��[[4H6nU"S5nX!"S5S4HnUR[X#55 M M8 g)N�nanr!rY)rrr�r2)rLr�r]�others    r�test_nan� ApproxEqualSpecialsTest.test_nanZsB���W�%�E���,�C��u�U�|�T�2��� � ��c�!9�:�3�&rc	�h�[R"SS5nUR[USSSS95 g)Nr}rr�r�)rrr�r2�rL�nzeros  r�test_float_zeroes�)ApproxEqualSpecialsTest.test_float_zeroes`s)���
�
�c�2�&������U�C�S�c�B�Crc	�b�[S5nUR[U[S5SSS95 g)Nz-0.0rr�r�)rr�r2rbs  r�test_decimal_zeroes�+ApproxEqualSpecialsTest.test_decimal_zeroesds&����������U�G�A�J�C�S�I�Jrr6N)	r7r8r9r:rZr_rdrgr<r6rrrWrWMs��6�;�D�KrrWc� �\rSrSrSrSrSrg)�TestApproxEqualErrors�ic�@�UR[[SSSS5 g)Nr�rr���assertRaisesr+r2r�s r�test_bad_tol�"TestApproxEqualErrors.test_bad_tolls�����*�l�C��b�#�Frc�@�UR[[SSSS5 g)Nr�r
r+rmr�s r�test_bad_rel�"TestApproxEqualErrors.test_bad_relps�����*�l�C��a��Frr6N)r7r8r9r:rorrr<r6rrrjrjis��G�Grrjc�2�\rSrSrSrSrSrSrSrSr	g)	�TestNumericTestCaseizc�|�[R"U6nUR"U6nUHnURXB5 M grq)rXrr�generate_substrings�assertIn)rLr��
actual_msgr%�	substrings     r�do_test�TestNumericTestCase.do_test�s8��$�6�6��=�
��+�+�T�2��!�I��M�M�)�0�"rc�^�UR[[[R55 grq)r��
issubclassrXrU�TestCaser�s r� test_numerictestcase_is_testcase�4TestNumericTestCase.test_numerictestcase_is_testcase�s�����
�?�H�4E�4E�F�Grc�*�SnURU5 g)N)�@�@r��?N�r{�rLr�s  r�test_error_msg_numeric�*TestNumericTestCase.test_error_msg_numeric�s��*�����T�rc�*�SnURU5 g)N)�@g� @g�?rr�r�r�s  r�test_error_msg_sequence�+TestNumericTestCase.test_error_msg_sequence�s��)�����T�rc�r�[X5upgSU-SU-SU-SU-/nUbURSU-5 U$)z5Return substrings we expect to see in error messages.ztol=%rzrel=%rzabsolute error = %rzrelative error = %rzdiffer at index %d)r)�append)	rLr`rar.r/rsr'r(�
substringss	         rrw�'TestNumericTestCase.generate_substrings�sU��'��6����3���3��%��/�%��/�	�
��?����2�S�8�9��rr6N)
r7r8r9r:r{r�r�r�rwr<r6rrruruzs��1�H��
�
rruc�,�\rSrSr\rSS/rSrSrSr	g)�GlobalsTesti�r;�__all__c�|�URH,nUR[URU5SU-5 M. g)Nz%s not present)�expected_metadatar��hasattr�module)rL�metas  r�	test_meta�GlobalsTest.test_meta�s3���*�*�D��O�O�G�D�K�K��6�,�t�3�
5�+rc���URnURHEnURURS5SU-5 UR	[X5SU-5 MG g)N�_zprivate name "%s" in __all__zmissing name "%s" in __all__)r�r�r��
startswithr�r�)rLr��names   r�test_check_all�GlobalsTest.test_check_all�sY�������N�N�D����T�_�_�S�1�;�d�B�
D�
�O�O�G�F�1�:�T�A�
C�#rr6N)
r7r8r9r:r=r�r�r�r�r<r6rrr�r��s��
�F�"�I�.��5�	Crr�c��\rSrSrSrSrg)�StatisticsErrorTesti�c���SnUR[[S55 UR[[R[
5U[RR-5 g)NzNExpected StatisticsError to be a ValueError, but got a subclass of %r instead.�StatisticsError)r�r�r=r~r�r+�__base__)rL�errmsgs  r�test_has_exception�&StatisticsErrorTest.test_has_exception�sR��+�	�	
����
�,=�>�?�����:�5�5�z�B���3�3�<�<�<�	rr6N)r7r8r9r:r�r<r6rrr�r��s��	rr�c�>�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�ExactRatioTesti�c�f�SH+nUR[R"U5US45 M- g)N)������rr��cl F�x:^Vr
)rHr=�_exact_ratio)rLrms  r�test_int�ExactRatioTest.test_int�s+��,�A����Z�4�4�Q�7�!�Q��@�-rc��SnUH7n[US5nUR[R"U5US45 M9 g)N)���r
r��&r)rrHr=r�)rLrrr�s    r�
test_fraction�ExactRatioTest.test_fraction�s;��$�
��A���B��A����Z�4�4�Q�7�!�R��A�rc�p�UR[R"S5S5 UR[R"S5S5 [S5Vs/sHn[R
"SS5PM nnUH/n[R"U5upEURX4U-5 M1 gs snf)Nr'�r
r���?)r�r�r����)rHr=r��range�random�uniform)rLr��datar�num�dens      r�
test_float�ExactRatioTest.test_float�s�������0�0��7��@�����0�0��7��@�38��:�>�:�a����t�S�)�:��>��A�!�.�.�q�1�H�C����Q�C��(���?s�!B3c���[n[RnURU"U"S55S5 URU"U"S55S5 URU"U"S55S5 g)Nz0.125r�z12.345)i�	��z-1.98)i����r3)rr=r�rH)rLr�r�s   r�test_decimal�ExactRatioTest.test_decimal�s]����!�.�.������a��j�1�6�:�����a��k�2�K�@�����a��j�1�9�=rc��[S5n"SS[5n"SS[5nX*4H�n[U[U4HznU"U5n[R"U5nUR	XvS45 UR	[US5U5 UR
[R"US55 M| M� g)N�INFc��\rSrSrSrg)�(ExactRatioTest.test_inf.<locals>.MyFloati�r6N�r7r8r9r:r<r6rr�MyFloatr�����rr�c��\rSrSrSrg)�*ExactRatioTest.test_inf.<locals>.MyDecimali�r6Nr�r6rr�	MyDecimalr��r�rr�r)	rrr=r�rHrr�rr,)rLr�r�r�r!r�r�ratios        rrZ�ExactRatioTest.test_inf�s����E�l��	�e�	�	��	���;�C���'�9�=���#�J��"�/�/��2��� � ��D�	�2�� � ��e�A�h���7�����
�
�5��8� 4�5�>�rc�L�[S5n"SS[5nX"U54H}n[R"U5nUR[R
"US55 UR
USS5 UR[US5[U55 M g)N�NANc��\rSrSrSrg)�.ExactRatioTest.test_float_nan.<locals>.MyFloati�r6Nr�r6rrr�r��r�rr�rr
)	rr=r�r�rr�assertIsrHr)rLr�r�r]r�s     r�test_float_nan�ExactRatioTest.test_float_nan�s����E�l��	�e�	�����&�C��+�+�C�0�E��O�O�D�J�J�u�Q�x�0�1��M�M�%��(�D�)����T�%��(�^�T�#�Y�7�	'rc�\�[S5n[S5n"SS[5nX"U5X#"U54Hsn[R"U5nUR[	USU55 URUSS5 UR
[US5[U55 Mu g)Nr��sNANc��\rSrSrSrg)�2ExactRatioTest.test_decimal_nan.<locals>.MyDecimalir6Nr�r6rrr�r�r�rr�rr
)rr=r�r�rr�rHr)rLr�r�r�r]r�s      r�test_decimal_nan�ExactRatioTest.test_decimal_nans����e�n���v���	��	���3���y���?�C��+�+�C�0�E��O�O�J�u�Q�x��5�6��M�M�%��(�D�)����T�%��(�^�T�#�Y�7�	@rr6N)r7r8r9r:r�r�r�r�rZr�r�r<r6rrr�r��s'��A�B�)�>�6�8�	8rr�c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�DecimalToRatioTestic��[S5nUR[R"U5US45 UR[R"U*5U*S45 g)Nr�)rrHr=r�)rLr!s  r�
test_infinity� DecimalToRatioTest.test_infinitysM���e�n������0�0��5��T�{�C�����0�0�#��6�#��t��Erc���[S5[S54HGn[R"U5up#UR[	X!55 URUS5 MI g)Nr�r�)rr=r�r�rr�)rLr]r�r�s    rr_�DecimalToRatioTest.test_nansL���E�N�G�F�O�4�C�!�.�.�s�3�H�C�
�O�O�J�s�0�1��M�M�#�t�$�
5rc�4�[S5[S5/nUH|n[R"U5up4URUS5 UR	US5 [R"U*5up4URUS5 UR	US5 M~ g)Nz	9.8765e12z
9.8765e-12r)rr=r��assertGreaterEqual�
assertGreater�assertLessEqual)rL�numbersr�r�r�s     r�	test_sign�DecimalToRatioTest.test_signs����;�'���)>�?���A�"�.�.�q�1�H�C��#�#�C��+����s�A�&�!�.�.��r�2�H�C�� � ��a�(����s�A�&�rc�f�[R"[S55nURUS5 g)Nz0.1234)rk��r=r�rrH�rL�ts  r�test_negative_exponent�)DecimalToRatioTest.test_negative_exponent-s'���#�#�G�H�$5�6������K�(rc�f�[R"[S55nURUS5 g)Nz1.234e7)i K�r
r�r�s  r�test_positive_exponent�)DecimalToRatioTest.test_positive_exponent2s'���#�#�G�I�$6�7������M�*rc���[R"[S55nURUS5 [R"[S55nURUS5 g)N�1e2)r�r
z1.47e5)i8>r
r�r�s  r�test_regression_20536�(DecimalToRatioTest.test_regression_205367sM��
�#�#�G�E�N�3������H�%��#�#�G�H�$5�6������K�(rr6N)r7r8r9r:r�r_r�r�r�r�r<r6rrr�r�s!��F�%�'�)�
+�
)rr�c�&�\rSrSrSrSrSrSrg)�IsFiniteTesti@c��S[SS5S[S54H(nUR[R"U55 M* g)Nr�r
r�r��5.5)rrr�r=�	_isfiniter�s  r�test_finite�IsFiniteTest.test_finiteCs6���X�a��^�S�'�%�.�9�A��O�O�J�0�0��3�4�:rc��[S5[S54H(nUR[R"U55 M* g�Nr!�rrr�r=rr�s  rr��IsFiniteTest.test_infinityHs2����,����/�A����Z�1�1�!�4�5�0rc��[S5[S5[S54H(nUR[R"U55 M* g�Nr]r�r�rr�s  rr_�IsFiniteTest.test_nanMs9����,�������@�A����Z�1�1�!�4�5�Arr6N)r7r8r9r:rr�r_r<r6rrr�r�@s��5�
6�
6rr�c�V�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rg)�
CoerceTestiSc��[[[[4HdnUR	[
R"U[5U5 "SSU5nUR	[
R"U[5U5 Mf g)Nc��\rSrSrSrg)�%CoerceTest.test_bool.<locals>.MyClassinr6Nr�r6rr�MyClassrn���drr)r�rrrr�r=�_coerce�bool)rL�Trs   r�	test_bool�CoerceTest.test_boolhsU���u�h��0�A��M�M�*�,�,�Q��5�q�9�"�!�"��M�M�*�,�,�W�d�;�W�E�1rc��UR[R"X5U5 UR[R"X!5U5 g)z Assert that type A coerces to B.N)r�r=r�rL�A�Bs   r�assertCoerceTo�CoerceTest.assertCoerceToqs4���
�
�j�(�(��.��2��
�
�j�(�(��.��2rc��URX5 "SSU5nURX25 "SSU5nURX5 URX45 g)z6Checks that type A coerces to B, including subclasses.c��\rSrSrSrg)�/CoerceTest.check_coerce_to.<locals>.SubclassOfAi{r6Nr�r6rr�SubclassOfAr{rrr c��\rSrSrSrg)�/CoerceTest.check_coerce_to.<locals>.SubclassOfBi~r6Nr�r6rr�SubclassOfBr"~rrr#N)r)rLrrr r#s     r�check_coerce_to�CoerceTest.check_coerce_tovsL��	
���A�!�"�!�"����K�+�"�!�"����A�+����K�5rc��UR[[RX45 UR[[RX!45 g)z=Assert that coercing A to B, or vice versa, raises TypeError.N)rn�	TypeErrorr=rrs   r�assertCoerceRaises�CoerceTest.assertCoerceRaises�s6�����)�Z�%7�%7�!��@����)�Z�%7�%7�!��@rc�0�UR[R"X5U5 "SSU5n"SSU5n"SSU5nX#U4HnURX5 M URX$5 UR	X#5 UR	X45 g)z>Check that type T coerces correctly with subclasses of itself.c��\rSrSrSrg)�*CoerceTest.check_type_coercions.<locals>.Ui�r6Nr�r6rr�Ur,����Drr-c��\rSrSrSrg)�*CoerceTest.check_type_coercions.<locals>.Vi�r6Nr�r6rr�Vr0�r.rr1c��\rSrSrSrg)�*CoerceTest.check_type_coercions.<locals>.Wi�r6Nr�r6rr�Wr3�r.rr4N)r�r=rrr()rLrr-r1r4�typs      r�check_type_coercions�CoerceTest.check_type_coercions�s{��	
�
�
�j�(�(��.��2�����������!�9�C�����'�����A�!�����%�����%rc��UR[5 [[[4HnUR[U5 M grq)r6r�rrrr$)rLr5s  rr��CoerceTest.test_int�s1���!�!�#�&��8�W�-�C�� � ��c�*�.rc�b�UR[5 UR[[5 grq)r6rr$rr�s rr��CoerceTest.test_fraction�s ���!�!�(�+����X�u�-rc�.�UR[5 grq)r6rr�s rr��CoerceTest.test_decimal�s���!�!�'�*rc�.�UR[5 grq)r6rr�s rr��CoerceTest.test_float�s���!�!�%�(rc��[[[S5[[4H1n[
[[[4HnURX!5 M M3 grq)
�str�listr�tuple�dictr�rrrr()rL�bad_type�	good_types   r�test_non_numeric_types�!CoerceTest.test_non_numeric_types�s<���d�D��J��t�<�H�!�5�(�G�<�	��'�'�	�<�=�=rc��[[4H:n"SSU5nURU[5 URU[5 M< g)Nc��\rSrSrSrg)�6CoerceTest.test_incompatible_types.<locals>.MySubclassi�r6Nr�r6rr�
MySubclassrK�s��rrL)rrr(r)rLrrLs   r�test_incompatible_types�"CoerceTest.test_incompatible_types�s9����"�A�%�Q�%��#�#�A�w�/��#�#�J��8�#rr6N)r7r8r9r:rrr$r(r6r�r�r�r�rGrMr<r6rrrrSs;��*F�3�

6�A�
&� +�.�
+�)�=�
9rrc�D�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rg)�ConvertTestr�c�n�URX5 UR[U5[U55 g)z5Check that x equals y, and has the same type as well.N)rHr�r�rLrr-s   r�check_exact_equal�ConvertTest.check_exact_equal�s&��������
�
�d�1�g�t�A�w�'rc��[R"[S5[5nUR	US5 "SS[5n[R"[S5U5nUR	X"S55 g)Nrc��\rSrSrSrg)�#ConvertTest.test_int.<locals>.MyInti�r6Nr�r6rr�MyIntrW�s��$rrXr�)r=�_convertrr�rS)rLrrXs   rr��ConvertTest.test_int�sZ��������c�2�����q�"�%��C��������e�4�����q�%��)�,rc��[R"[SS5[5nURU[SS55 "SS[5n[R"[SS5U5nURX"SS55 g)N�_r�c�(^�\rSrSrU4SjrSrU=r$)�-ConvertTest.test_fraction.<locals>.MyFractionr�c�@>�UR[TU]	U55$rq��	__class__�super�__truediv__�rLr^ras  �rrc�9ConvertTest.test_fraction.<locals>.MyFraction.__truediv__������~�~�e�g�&9�%�&@�A�Arr6�r7r8r9r:rcr<�
__classcell__�ras@r�
MyFractionr^�����
B�
Brrjr�
)r=rYrrS)rLrrjs   rr��ConvertTest.test_fraction�sr�������R� 0�(�;�����q�(�2�r�"2�3�	B��	B�
�����R� 0�*�=�����q�*�R��"4�5rc��[R"[SS5[5nUR	US5 "SS[5n[R"[SS5U5nUR	X"S55 g)	Nrrg�c�(^�\rSrSrU4SjrSrU=r$)�'ConvertTest.test_float.<locals>.MyFloati�c�@>�UR[TU]	U55$rqr`rds  �rrc�3ConvertTest.test_float.<locals>.MyFloat.__truediv__�rfrr6rgris@rr�rp�rkrr�r�r�r�)r=rYrrrS)rLrr�s   rr��ConvertTest.test_float�sf�������Q���7�����q�$�'�	B�e�	B�
�����A���8�����q�'�%�.�1rc��[R"[SS5[5nUR	U[S55 "SS[5n[R"[SS5U5nUR	X"S55 g)	Nr
�(z0.025c�(^�\rSrSrU4SjrSrU=r$)�+ConvertTest.test_decimal.<locals>.MyDecimali�c�@>�UR[TU]	U55$rqr`rds  �rrc�7ConvertTest.test_decimal.<locals>.MyDecimal.__truediv__�rfrr6rgris@rr�rw�rkrr�rr�z-0.9375)r=rYrrrS)rLrr�s   rr��ConvertTest.test_decimal�sm�������B���9�����q�'�'�"2�3�	B��	B�
�����b� 1�9�=�����q�)�I�"6�7rc��[S5[S54H?nX*4H4n[R"U[	U55nURX25 M6 MA gr)rrr=rYrrS)rLr�r!rs    rrZ�ConvertTest.test_inf�sK���%�L�'�%�.�1�C��T�{���'�'��T�#�Y�7���&�&�q�.�#�2rc���[S5[S5[S54H=n[R"U[	U55nUR[
X!55 M? gr	)rrr=rYrr�r)rLr]rs   rr_�ConvertTest.test_nan�sG���%�L�'�%�.�'�&�/�B�C��#�#�C��c��3�A��O�O�J�q�.�/�Crc��UR[5 [R"S[5 SSS5 g!,(df   g=frq)rnr'r=rYrr�s r�test_invalid_input_type�#ConvertTest.test_invalid_input_type�s,��
�
�
�y�
)�����e�,�*�
)�
)�s	�;�
A	r6N)
r7r8r9r:rSr�r�r�r�rZr_r�r<r6rrrPrP�s*��(�
-�6�2�8�/�0�
-rrPc�*�\rSrSrSrSrSrSrSrg)�FailNegTestr�z Test _fail_neg private function.c��SS[S5[S5/n[[R"U55nURX5 g�Nr
�@r�r�)rrrBr=�	_fail_negrH)rL�values�news   r�test_pass_through�FailNegTest.test_pass_through�s;���S�(�1�+�w�q�z�2���:�'�'��/�0������%rc��SS[S5[S54HBnU*/n[R"U5nUR	[R
[U5 MD gr�)rrr=r�rnr��next)rLr�seq�its    r�test_negatives_raise� FailNegTest.test_negatives_raise�sN���S�(�1�+�w�q�z�2�A��2�$�C��%�%�c�*�B����j�8�8�$��C�3rc�"�S[R"SS5-n[[R"S/U55 URS5 URWU5 g![RanURSnSnAN;SnAff=f)Nzbadness #%d�'i��rz(expected exception, but it didn't happenr)	r��randintr�r=r��failr�r�rH)rLrbrnr�s    r�test_error_msg�FailNegTest.test_error_msgsx���f�n�n�U�E�:�:��	B���%�%�r�d�C�0�1�
�I�I�@�A������%��	�)�)�	��V�V�A�Y�F��	�s�!A!�!B�5B	�	Br6N)	r7r8r9r:r;r�r�r�r<r6rrr�r��s��*�&�D�	&rr�c�P�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Srg
)�UnivariateCommonMixinic�D�UR[UR5 grq�rnr'�funcr�s r�test_no_args�"UnivariateCommonMixin.test_no_argss�����)�T�Y�Y�/rc��/S[/54H.nUR[RURU5 M0 g)Nr6)�iterrnr=r�r�)rL�emptys  r�test_empty_data�%UnivariateCommonMixin.test_empty_datas3���"�d�2�h�'�E����j�8�8�$�)�)�U�K�(rc��[[S55nU[U5:Xa'[R"U5 U[U5:XaM'U$)z"Return int data for various tests.r��rBr��sortedr��shuffle�rLr�s  r�prepare_data�"UnivariateCommonMixin.prepare_datas:���E�"�I����f�T�l�"��N�N�4� ��f�T�l�"��rc�t�UR5nUSSnURU5nURXS5 g)Nzdata has been modified)r�r��assertListEqual)rLr��savedr�s    r�test_no_inplace_modifications�3UnivariateCommonMixin.test_no_inplace_modifications&s9��� � �"���Q����I�I�d�O�����T�*B�Crc��/SQS-nURU5n[R"U5 URU5nURX#5 g)N)r
rr�r�r�r�r��r�)r�r�r�rH)rLr�r%r$s    r�test_order_doesnt_matter�.UnivariateCommonMixin.test_order_doesnt_matter0sB��(��+���9�9�T�?�����t�����4�������*rc��"SS[5n"SS[5nSnUR5nURU5n[[[XU4H+nURU"U55nURXu5 M- g)Nc��\rSrSrSrg)�BUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyListi?r6Nr�r6rr�MyListr�?r�rr�c��\rSrSrSrg)�CUnivariateCommonMixin.test_type_of_data_collection.<locals>.MyTupleiAr6Nr�r6rr�MyTupler�Ar�rr�c��SU5$)Nc3�$# �UHov� M g7frqr6)r�objs  rr�XUnivariateCommonMixin.test_type_of_data_collection.<locals>.generator.<locals>.<genexpr>Ds���(�4�C�C�4�s�r6�r�s r�	generator�EUnivariateCommonMixin.test_type_of_data_collection.<locals>.generatorCs
��(�4�(�(r)rBrCr�r�r�rH)rLr�r�r�r�r%�kindr�s        r�test_type_of_data_collection�2UnivariateCommonMixin.test_type_of_data_collection=sp��	�T�	�	�e�	�	)�� � �"���9�9�T�?���5�$���C�D��Y�Y�t�D�z�*�F����V�.�Drc��[SSS5nUR[U55nURURU5U5 g�N�r3r�)r�r�rBrH�rLr�r%s   r�test_range_data�%UnivariateCommonMixin.test_range_dataKs:���R��Q����9�9�T�$�Z�(��������4��(�3rc��URS5 URS5 URS5 UR[55 g)NrgE@)�check_for_type_error�objectr�s r�test_bad_arg_types�(UnivariateCommonMixin.test_bad_arg_typesQs>��	
�!�!�$�'��!�!�"�%��!�!�$�'��!�!�&�(�+rc�H�UR"[UR/UQ76 grqr�r�s  rr��*UnivariateCommonMixin.check_for_type_error`s�����)�T�Y�Y�6��6rc�0�"SS[5nUR5nURU5n[U[[4HKnUVs/sH
oT"U5PM nn[U5"URU55nUR
Xs5 MM gs snf)Nc�8^�\rSrSrU4SjrU4Sjr\rSrU=r$)�@UnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloatigc�@>�[U5"[TU]	U55$rq�rrbrcrds  �rrc�LUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__truediv__h�����D�z�%�'�"5�e�"<�=�=rc�@>�[U5"[TU]	U55$rq�rrb�__add__rds  �rr��HUnivariateCommonMixin.test_type_of_data_element.<locals>.MyFloat.__add__j�����D�z�%�'�/�%�"8�9�9rr6)	r7r8r9r:rcr��__radd__r<rhris@rr�r�gs���
>�
:��Hrr�)rr�r�rrrrH)rLr��rawr%r�rr�r�s        r�test_type_of_data_element�/UnivariateCommonMixin.test_type_of_data_elementcs}��	�e�	����!���9�9�S�>���G�W�h�7�D�%(�)�S��D��G�S�D�)��(�^�D�I�I�d�O�4�F����V�.�8��)s�
Br6N)r7r8r9r:r�r�r�r�r�r�r�r�r�r�r<r6rrr�r�s6��0�L�
�D�+�/�4�
,�7�/rr�c�$�\rSrSrSrSrSrSrg)�UnivariateTypeMixinivaUMixin class for type-conserving functions.

This mixin class holds test(s) for functions which conserve the type of
individual data points. E.g. the mean of a list of Fractions should itself
be a Fraction.

Not all tests to do with types need go in this class. Only those that
rely on the function returning the same type as its input data.
c�D�"SS[5n[[[U4$)z4Return the types which are expected to be conserved.c�x^�\rSrSrU4SjrU4SjrU4SjrU4SjrU4SjrU4Sjr	\	r
U4Sjr\rS	r
U=r$)
�HUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloati�c�@>�[U5"[TU]	U55$rqr�rds  �rrc�TUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__truediv__�r�rc�@>�[U5"[TU]	U55$rq)rrb�__rtruediv__rds  �rr��UUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rtruediv__�s����D�z�%�'�"6�u�"=�>�>rc�@>�[U5"[TU]	U55$rq)rrb�__sub__rds  �rr��PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__sub__�r�rc�@>�[U5"[TU]	U55$rq)rrb�__rsub__rds  �rr��QUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__rsub__�s����D�z�%�'�"2�5�"9�:�:rc�@>�[U5"[TU]	U55$rq)rrb�__pow__rds  �rr��PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__pow__�r�rc�@>�[U5"[TU]	U55$rqr�rds  �rr��PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__add__�r�rc�@>�[U5"[TU]	U55$rq)rrb�__mul__rds  �rr��PUnivariateTypeMixin.prepare_types_for_conservation_test.<locals>.MyFloat.__mul__�r�rr6)r7r8r9r:rcr�r�r�r�r�r�r��__rmul__r<rhris@rr�r��s0���
>�
?�
:�
;�
:�
:��H�
:��Hrr�)rrr)rLr�s  r�#prepare_types_for_conservation_test�7UnivariateTypeMixin.prepare_types_for_conservation_test�s��	�e�	�"�w��'�2�2rc���UR5nUR5HFnUVs/sH
o2"U5PM nnURU5nUR[	U5U5 MH gs snfrq)r�r�r�r�r)rLr�r�rr�r�s      r�test_types_conserved�(UnivariateTypeMixin.test_types_conserved�s_��� � �"���<�<�>�D�"&�'�$�Q��a��$�A�'��Y�Y�q�\�F��M�M�$�v�,��-�?��'s�A,r6N)r7r8r9r:r;r�r�r<r6rrr�r�vs���3�*.rr�c��\rSrSrSrSrg)�
TestSumCommoni�c��SnXlg)Nc�Z�[R"U6upn[R"X!5$rq)r=�_sumr)r�r�valuers    r�simplified_sum�+TestSumCommon.setUp.<locals>.simplified_sum�s%��$�/�/�4�0�K�A�a��%�%�e�/�/r�r�)rLrs  r�setUp�TestSumCommon.setUp�s��	0�#�	rrN)r7r8r9r:r	r<r6rrrr�s��
#rrc�P�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Srg
)�TestSumi�c�.�[RUlgrq)r=rr�r�s rr	�
TestSum.setUp��
���O�O��	rc��/S[/54H4nURURU5[[	S5S45 M6 g)Nr6r)r�rHr�r�rr�s  rr��TestSum.test_empty_data�s:����T�"�X�&�D����T�Y�Y�t�_�s�H�Q�K��.C�D�'rc�j�URUR/SQ5[[S5S45 g)N)r
r�r����i����r�r�r
�<r�)rHr�r�rr�s r�	test_ints�TestSum.test_ints�s*��������#?�@��x��|�Q�/�	1rc�n�URURS/S-5[[S5S45 g)Nr�r��@)rHr�rrr�s r�test_floats�TestSum.test_floats�s/��������D�6�"�9�-���#���3�	5rc��URUR[SS5/S-5[[SS5S45 g)Nr
rY��r)rHr�rr�s r�test_fractions�TestSum.test_fractions�s:��������H�Q��$5�#6�s�#:�;�"�H�Q��N�C�8�	:rc
���[nU"S5U"S5U"S5U"S5U"S5U"S5U"S5U"S5/nURURU5[[S	5S
45 g)Nr9z5.246z1.702z-0.025z3.974z2.328z4.617z2.843z20.686r�)rrHr��rLr�r�s   r�
test_decimals�TestSum.test_decimals�si�����'�
�A�g�J��'�
�A�h�K��'�
�A�g�J��'�
�A�g�J���	
������4��!�7�8�#4�a�8�	:rc���[S5Vs/sHn[R"SS5PM nnUR[	URU5S5[R"U5SS9 gs snf)NrYr�r
g��ؗ�Ҭ<�r/)r�r�r�rdrr�r�fsum)rLr�r�s   r�test_compare_with_math_fsum�#TestSum.test_compare_with_math_fsum�s\��5:�$�K�@�K�q����t�T�*�K��@����u�T�Y�Y�t�_�Q�%7�8�$�)�)�D�/�u��U��As�!A2c��UR[UR/SQS5 UR[UR/SQ5 g)N�r
rr��999)r
rr�r*r�r�s r�test_strings_fail�TestSum.test_strings_fail�s1�����)�T�Y�Y�	�5�A����)�T�Y�Y�0@�Arc��UR[UR/SQS5 UR[UR/SQ5 g)Nr)�999)r
rr�r.r�r�s r�test_bytes_fail�TestSum.test_bytes_fail�s1�����)�T�Y�Y�	�6�B����)�T�Y�Y�0A�Brc	��UR[URSS[S5/5 UR[URSS/[S55 g)Nr
r�)rnr'r�rr�s r�test_mixed_sum�TestSum.test_mixed_sum�sE��	
���)�T�Y�Y��C����0D�E����)�T�Y�Y��C��'�!�*�ErrN)r7r8r9r:r	r�rrrr!r&r+r/r2r<r6rrrr�s9��
$�E�
1�5�:�:�V�B�
C�
Frrc��\rSrSrSrSrg)�SumTortureTesti�c��UR[R"/SQS-5[[	S5S45 UR[R"/SQS-5[[	S5S45 [R"/SQS-5upnURU[5 URUS5 UR
[U5SSS	9 g)
N)r
�}Ô%�I�Tr
�}Ô%�I��r�g��@i@�)r7r
r
r8)�0��.�++r
r9rg���^�,gV瞯�<r$)rHr=rrrr�rd)rLrr��counts    r�test_torture�SumTortureTest.test_torture�s���������)>�u�)D�E���'�!2�E�:�	<�������)>�u�)D�E���'�!2�E�:�	<�"���(?��(E�F�
����
�
�a��������&����u�S�z�7���>rr6N)r7r8r9r:r;r<r6rrr5r5�s��	?rr5c�J�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)
�SumSpecialValuesi�c���[[4HgnU"S5n[R"SUS/5SnUR	[U5U5 UR
[R"U55 Mi g)Nr]r
r)	rrr=rr�rr�rr)rLr�r]r�s    rr_�SumSpecialValues.test_nan�sZ���W�%�E���,�C��_�_�a��a�[�1�!�4�F��M�M�$�v�,��.��O�O�D�J�J�v�.�/�	&rc���UR[R"U55 UR[	U5[	U55 URUS:�US:�5 g)z8Check x is an infinity of the same type and sign as inf.rN)r�rr,r�rrH)rLrr!s   r�check_infinity�SumSpecialValues.check_infinity�sD������
�
�1�
�&��
�
�d�1�g�t�C�y�)�����Q���a��(rc��[R"SSUS/5SnURX!5 [R"SSUSUS/5SnURX!5 g)Nr
rr�r�)r=rrB�rLr!r�s   r�do_test_inf�SumSpecialValues.do_test_infsY�����!�Q��Q��0��3�����F�(����!�Q��Q��Q�!7�8��;�����F�(rc�R�[S5nSHnURX!-5 M g�Nr!�r
r)rrF�rLr!rs   r�test_float_inf�SumSpecialValues.test_float_infs%���E�l���D����T�X�&�rc�R�[S5nSHnURX!-5 M grI)rrFrKs   r�test_decimal_inf�!SumSpecialValues.test_decimal_infs%���e�n���D����T�X�&�rc��[S5n[R"SSUSU*S/5SnUR[R
"U55 g�Nr!r
rr�r�)rr=rr�rrrEs   r�test_float_mismatched_infs�+SumSpecialValues.test_float_mismatched_infssB���E�l�����!�Q��Q���a�!8�9�!�<������
�
�6�*�+rc� �[S5nSSUSU*S/n[R"[R5 UR	[
R"[R"U5S55 SSS5 g!,(df   g=frR)	r�decimal�localcontext�ExtendedContextr�rrr=r�rLr!r�s   r�3test_decimal_extendedcontext_mismatched_infs_to_nan�DSumSpecialValues.test_decimal_extendedcontext_mismatched_infs_to_nansb���e�n���1�c�1�s�d�A�&��
�
!�
!�'�"9�"9�
:��O�O�D�J�J�z���t�'<�Q�'?�@�A�;�
:�
:�s�=A?�?
B
c��[S5nSSUSU*S/n[R"[R5 UR	[R
[RU5 SSS5 g!,(df   g=frR)rrVrW�BasicContextrn�InvalidOperationr=rrYs   r�0test_decimal_basiccontext_mismatched_infs_to_nan�ASumSpecialValues.test_decimal_basiccontext_mismatched_infs_to_nan#s[���e�n���1�c�1�s�d�A�&��
�
!�
!�'�"6�"6�
7����g�6�6�
����N�8�
7�
7�s�0A2�2
Bc��[S5nSUS/nUR[R[R
U5 g)Nr�r
r)rrnrVr^r=r)rLr�r�s   r�test_decimal_snan_raises�)SumSpecialValues.test_decimal_snan_raises*s2���v����4��|�����'�2�2�J�O�O�T�Jrr6N)r7r8r9r:r_rBrFrLrOrSrZr_rbr<r6rrr>r>�s2��0��)�'�
'�
,�B�O�Krr>c�&�\rSrSrSrSrSrSrg)�AverageMixini3c��SSS[SS5[S54H%nURURU/5U5 M' g�Nrg@E@g�X_yCr��z0.28�rrrHr�r�s  r�test_single_value�AverageMixin.test_single_value6s=���d�F�H�R��$4�g�f�o�F�A����T�Y�Y��s�^�Q�/�Grc�6�SSS[SS5[S54$)N�@r����7y�!C�=�Cz4.9712�rrr�s r�'prepare_values_for_repeated_single_test�4AverageMixin.prepare_values_for_repeated_single_test;s���R���"�b�!1�7�8�3D�E�Erc���UR5HKnSHBnURXS9 U/U-nURURU5U5 SSS5 MD MM g!,(df   MZ=f)N�rr�r�r�)rr:)rr�subTestrHr��rLrr:r�s    r�test_repeated_single_value�'AverageMixin.test_repeated_single_value>s`���=�=�?�A�'���\�\�A�\�3��3�u�9�D��$�$�T�Y�Y�t�_�a�8�4�3�(�@�3�3�s�(A!�!
A0r6N)r7r8r9r:rjrrrxr<r6rrrere3s��0�
F�9rrec�b�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�TestMeaniGc�.�[RUlgrq)r=�meanr�r�s rr	�TestMean.setUpHrrc�J�URUR/SQ5S5 g)N)r7r
r�r8r
�rHr�r�s r�test_torture_pep�TestMean.test_torture_pepKs��������#8�9�1�=rc�z�/SQn[R"U5 URURU5S5 g)N)rr
rr�r�r�r�r�r�r�r�r�r�r�r�r�g@@�r�r�rHr�r�s  rr�TestMean.test_intsOs+��?�����t��������4��&�1rc�z�/SQn[R"U5 URURU5S5 g)N)g@1@g�3@�4@g�5@g�5@g@7@g 9@g�;@g6@r�r�s  rr�TestMean.test_floatsUs+��E�����t��������4��)�4rc���[nU"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5U"S55 g)Nz1.634z2.517z3.912z4.072z5.813z3.5896�rr�r�rHr�r s   rr!�TestMean.test_decimals[sS�����'�
�A�g�J��'�
�A�g�J��'�
�K�����t��������4��!�H�+�6rc
��[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"S	S
55 g)Nr
rr�r�r�r�r�r�i�i��rr�r�rHr��rLr�r�s   rr�TestMean.test_fractionsbso�����!�Q���1�a��!�A�q�'�1�Q��7�A�a��G�Q�q�!�W�a��1�g�N�����t��������4��!�D�$�-�8rc���/SQn[[4HcnSHZnU"S5U-nX/-nURU5nUR[R
"U55 UR
Xd5 M\ Me g)N�r
r�r�r�r�rJr!)rrr�r�rr,rH)rLr�r�rr!r�r�s       rrZ�TestMean.test_infisg�����G�$�D����5�k�$�&���U�{�����4�������
�
�6� 2�3�� � ��-� �%rc
��SSS[S5SSS[S5/nURU5nUR[R"U55 g)	Nrr�r�r!r
r�r�z-inf)rr�r�rr�rLr�r�s   r�test_mismatched_infs�TestMean.test_mismatched_infstsB���1�a��u��q�!�Q��f�
�>�����4�������
�
�6�*�+rc��/SQn[[4HFnU"S5nX/-nURU5nUR[R
"U55 MH g)Nr�r])rrr�r�rr)rLr�r�r!r�r�s      rr_�TestMean.test_nanzsJ�����G�$�D��u�+�C���;�D��Y�Y�t�_�F��O�O�D�J�J�v�.�/�	%rc��Sn/SQnURU5U-nURUVs/sHoDU-PM	 sn5nURXS5 gs snf)Nge��A�	�333333@�@g������@g������@g333333@�������@g @g333333 @g������"@�r�rH�rL�cr�r%rr�s      r�
test_big_data�TestMean.test_big_data�sP����<���9�9�T�?�Q�&������.��A�a�C��.�/������*��/��Ac���[S5Vs/sHn[R"SS5PM nnURU5nURUS-5nUR	XC5 gs snf)NrYr�r�r�r�r�r�r�rd�rLr�r�r%r$s     r�test_doubled_data�TestMean.test_doubled_data�sW��/4�T�{�;�{�!����r�1�%�{��;��9�9�T�?�����4��6�"�����v�0��<��!A(c�h�[S5nUR[R"U/5U5 g)N�1e4)rrHr=r}r�s  r�test_regression_20561�TestMean.test_regression_20561�s(��
�E�N��������!��-�q�1rc��UR[R"SS/5S5 SnSnSHWnUR[R"U/U-5U5 UR[R"U/U-5U5 MY g)Ng�������g�g)rr�r�r�)rHr=r})rL�big�tinyrs    r�test_regression_25177�TestMean.test_regression_25177�s}��	
������
#�%:�;�=�!�	#�$�����A����Z�_�_�c�U�1�W�5�s�;����Z�_�_�d�V�A�X�6��=� rrN)r7r8r9r:r	r�rrr!rrZr�r_r�r�r�r�r<r6rrr{r{GsC��$�>�2�5�7�9�	.�,�0�+�1�2�>rr{c�^�\rSrSrSrU4SjrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrU=r$)�TestHarmonicMeani�c�.�[RUlgrq)r=�
harmonic_meanr�r�s rr	�TestHarmonicMean.setUp�s���,�,��	rc�F>�[TU]5nURS5 U$)Nr)rbr��remove)rLr�ras  �rr��TestHarmonicMean.prepare_data�s!�����%�'���
�
�a���
rc�6�SSS[SS5[S54$)Nrmr�rnrorpz4.125rqr�s rrr�8TestHarmonicMean.prepare_values_for_repeated_single_test�s���R���"�b�!1�7�7�3C�D�Drc�N�/SQnURURU5S5 g)N)r
rrrr��rLr�s  r�	test_zero�TestHarmonicMean.test_zero�s ����������6�*�A�.rc���[RnS//SQ4H7nURUS9 URXRU5 SSS5 M9 g!,(df   MK=f)Nr)r
r�r�)r�)r=r�rvrnr�)rL�excr�s   r�test_negative_error�$TestHarmonicMean.test_negative_error�sO���(�(���t�Z�(�F����V��,��!�!�#�y�y�&�9�-�,�)�,�,�s�A�
A#	c��S//SQ/SQ/SQ4HJnURUS9 UR[5 URU5 SSS5 SSS5 ML g!,(df   N=f!,(df   Mo=f)Nz3.14)�1�2�3)r
r�r��4r�)�ffffff@r�r�z5.6r�)rvrnr'r�r�s  r�test_invalid_type_error�(TestHarmonicMean.test_invalid_type_error�sf���H���"�	
�D����4��(��&�&�y�1��I�I�d�O�2�)�(�

�2�1��)�(�s"�A.�A�A.�
A+�'A.�.
A=	c�z�/SQn[R"U5 URURU5S5 g)N)rr�r�r�r�r�g333333@r�r�s  rr�TestHarmonicMean.test_ints�s+��#�����t��������4��%�0rc��/SQn[R"U5 URURU5S5 URUR/SQ5S5 g)N)r'r�r�rrr�)r�rrrrr�r�s  r�test_floats_exact�"TestHarmonicMean.test_floats_exact�sE��(�����t��������4��#�.�������#8�9�3�?rc�n�[SS5H%nURURU/5U5 M' g)Nr
r��r�rHr�r�s  r�test_singleton_lists�%TestHarmonicMean.test_singleton_lists�s,���q�#��A����T�Y�Y��s�^�Q�/�rc
��[nURURU"S5U"S5U"S5U"S5/5U"S55 U"S5U"S5U"S5U"S5/n[R"U5 URURU5U"S55 U"S5U"S5U"S	5U"S
5/n[R"U5 URURU5U"S5S-5 g)
Nr�r1rr:z0.10z0.20z1.68z0.32z5.94z2.75i�iC)rrHr�r�r�r s   r�test_decimals_exact�$TestHarmonicMean.test_decimals_exact�s�����������A�b�E�1�R�5�!�B�%��2��#?�@�!�B�%�H��&�	�1�V�9�a��i��6��;�����t��������4��!�F�)�4��&�	�1�V�9�a��i��6��;�����t��������4��!�E�(�5�.�9rc
��[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"S	S
55 g)Nr
rr�r�r�r�r�r�i|i�r�r�s   rr�TestHarmonicMean.test_fractions�so�����!�Q���1�a��!�A�q�'�1�Q��7�A�a��G�Q�q�!�W�a��1�g�N�����t��������4��!�E�4�.�9rc�b�S[S5S/nURURU5S5 g)Nr�r!r)rrHr�r�s  rrZ�TestHarmonicMean.test_inf�s+���u�U�|�S�)��������6�*�C�0rc��S[S5S/nUR[R"UR	U555 g)Nr�r]r)rr�rrr�r�s  rr_�TestHarmonicMean.test_nan�s0���u�U�|�S�)������
�
�4�9�9�V�#4�5�6rc��Sn/SQnURU5U-nURUVs/sHoDU-PM	 sn5nURXS5 gs snf)N�or�r�r�s      r�test_multiply_data_points�*TestHarmonicMean.test_multiply_data_points�sP����<���9�9�T�?�1�$������.��A�a�C��.�/������*��/r�c���[S5Vs/sHn[R"SS5PM nnURU5nURUS-5nUR	XC5 gs snf)NrYr
r�rr�r�s     rr��"TestHarmonicMean.test_doubled_datasW��.3�D�k�:�k�����q�!�$�k��:��9�9�T�?�����4��6�"�����v�0��;r�c
��URURSS/SS/5S5 URURSS/SS/S9S5 URUR[SS/5[SS/55S5 URUR[SS5[S	S5[S
S5//SQ5UR[SS5/S-[S	S5/S--[S
S5/S--55 URURS/S
/5S5 UR	[
5 UR/S
Q/SQ5 SSS5 UR	[R5 UR/S
QSS/5 SSS5 UR	[R5 URS/S/5 SSS5 UR	[R5 URSS/SS/5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   No=f!,(df   g=f)Nrurr�r1gL@)�weightsr�r�rr�r)r�rr�r))r
r6r�r
rr�)rHr�r�rrnr'r=r�r�s r�test_with_weights�"TestHarmonicMean.test_with_weights
s���������B��8�a��W�5�t�<�������B��8�,-�r�7�#�4�59�	;�������4��R��>�#'��B��=�2�37�	9�����I�I�x��A����Q���!�Q��H�*�U��I�I�x��A��'�!�+���A��'�!�+�,���1�~�&��+�,�
-�	.�
	
������B�4�!��-�r�2�
�
�
�y�
)��I�I�i��,�*�
�
�
�z�9�9�
:��I�I�i�!�Q��(�;�
�
�
�z�9�9�
:��I�I�r�d�Q�C� �;�
�
�
�z�9�9�
:��I�I�r�2�h��A��'�;�
:�
*�
)��
:�
:��
:�
:��
:�
:�s0�H�>H)�<H:�8I�
H&�)
H7�:
I�
Ir)r7r8r9r:r	r�rrr�r�r�rr�r�r�rrZr_r�r�r�r<rhris@rr�r��sZ���-��E�/�
:�
$�1�@�0�
	:�:�1�
7�
+�1�(�(rr�c�R^�\rSrSrSrU4SjrSrSrSrSr	Sr
S	rS
rU=r
$)�
TestMediani c�.�[RUlgrq�r=�medianr�r�s rr	�TestMedian.setUp"����%�%��	rc�j>�[TU]5n[U5S-S:waURS5 U$)�+Overload method from UnivariateCommonMixin.rr
)rbr�rgr�)rLr�ras  �rr��TestMedian.prepare_data%s0����w�#�%���t�9�Q�;�!���K�K��N��rc�N�/SQnURURU5S5 g)N�r
rr�r�r�r�rmr�r�s  r�test_even_ints�TestMedian.test_even_ints,s��!��������4��#�.rc�N�/SQnURURU5S5 g)N)r
rr�r�r�r�r�r�r�r�s  r�
test_odd_ints�TestMedian.test_odd_ints2s��$��������4��!�,rc���[nU"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"SS55 g)Nr
r�rr�r�r�r�r�s   r�test_odd_fractions�TestMedian.test_odd_fractions8s_�����!�Q���1�a��!�A�q�'�1�Q��7�A�a��G�<�����t��������4��!�A�q�'�2rc	���[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"SS55 g�Nr
r�rr�r�r�r�r�r�s   r�test_even_fractions�TestMedian.test_even_fractions@�g�����!�Q���1�a��!�A�q�'�1�Q��7�A�a��G�Q�q�!�W�E�����t��������4��!�A�q�'�2rc���[nU"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5U"S55 g)N�2.5�3.1�4.2�5.7�5.8r�r s   r�test_odd_decimals�TestMedian.test_odd_decimalsHsS�����%��!�E�(�A�e�H�a��h��%��A�����t��������4��!�E�(�3rc���[nU"S5U"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5U"S55 g)Nz1.2rrrrrz3.65r�r s   r�test_even_decimals�TestMedian.test_even_decimalsPsY�����%��!�E�(�A�e�H�a��h��%��!�E�(�K�����t��������4��!�F�)�4rr)r7r8r9r:r	r�r�r�r�r�rrr<rhris@rr�r� s0���&��/�-�3�3�4�5�5rr�c� �\rSrSrSrSrSrg)�TestMedianDataTypeiYc�.�[RUlgrqr�r�s rr	�TestMedianDataType.setUp[r�rc��[[S55nU[U5:Xa'[R"U5 U[U5:XaM'U$)Nr�r�r�s  rr��TestMedianDataType.prepare_data^s:���E�"�I����f�T�l�"��N�N�4� ��f�T�l�"��rrN)r7r8r9r:r	r�r<r6rrrrYs��&�rrc�,�\rSrSrSrSrSrSrSrg)�
TestMedianLowifc�.�[RUlgrq)r=�
median_lowr�r�s rr	�TestMedianLow.setUpgs���)�)��	rc�N�/SQnURURU5S5 g)Nr�r�r�r�s  rr��TestMedianLow.test_even_intsj���!��������4��!�,rc	���[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"SS55 gr�r�r�s   rr��!TestMedianLow.test_even_fractionsprrc���[nU"S5U"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5U"S55 g�Nz1.1z2.2z3.3z4.4rz6.6r�r s   rr� TestMedianLow.test_even_decimalsx�Y�����%��!�E�(�A�e�H�a��h��%��!�E�(�K�����t��������4��!�E�(�3rrN�	r7r8r9r:r	r�r�rr<r6rrrrfs��*�-�3�4rrc�,�\rSrSrSrSrSrSrSrg)�TestMedianHighi�c�.�[RUlgrq)r=�median_highr�r�s rr	�TestMedianHigh.setUp�s���*�*��	rc�N�/SQnURURU5S5 g)Nr�r�r�r�s  rr��TestMedianHigh.test_even_ints�rrc	���[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5U"SS55 gr�r�r�s   rr��"TestMedianHigh.test_even_fractions�rrc���[nU"S5U"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5U"S55 grr�r s   rr�!TestMedianHigh.test_even_decimals�r rrNr!r6rrr#r#�s��+�-�3�4rr#c�V�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rg)�TestMedianGroupedi�c�.�[RUlgrq)r=�median_groupedr�r�s rr	�TestMedianGrouped.setUp�s���-�-��	rc�.�/SQnURURU5S5 /SQnURURU5S5 /SQnURURUS5S5 /SQnURURUS	5S
SS9 g)
N)r�rl�r3r3r�r�r3)r�rlr3r3r3r3r�g�+@)r�r�r�r�r�r�r�r��r4r1r�g`3@)r��r5r5r5r�r�r��r6r6�r7��rg������4@�:�0�yE>�r.�rHr�rdr�s  r�test_odd_number_repeated�*TestMedianGrouped.test_odd_number_repeated�s���+��������4��"�-�+��������4��&�1�:��������4��+�V�4�K�����t�y�y��q�1�;�D��Irc�*�/SQnURURUS5SSS9 /SQnURURU5SSS9 /SQnURURU5S	5 /S
QnURURU5S5 g)N)
r�r�r�r�r�r�r�r4r4r1r�g�����*3@r:r;)rr�r�r�r�r�g["8���@)rr�r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r��@)rdr�rHr�s  r�test_even_number_repeated�+TestMedianGrouped.test_even_number_repeated�s���6�����t�y�y��q�1�;�D��I�!�����t�y�y���
���E�3��������4��#�.�-��������4��$�/rc��SSS[SS5[S54H<nSH3nU/U-nURURU5[	U55 M5 M> g)N�333333@�Dg��ޗCrr�z32.9714ru�rrrHr�rrws    rrx�,TestMedianGrouped.test_repeated_single_value�sW���r�6�8�B��#4�g�i�6H�I�A�'���s�5�y��� � ����4��%��(�;�(�Jrc��SSS[SS5[S54H.nURURU/5[	U55 M0 grgrFr�s  rrj�#TestMedianGrouped.test_single_value�sC���d�F�H�R��$4�g�f�o�F�A����T�Y�Y��s�^�U�1�X�6�Grc���[nU"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5S5 g)Nr�r�r�rlr��@r�r�s   rr��$TestMedianGrouped.test_odd_fractions�sY�����!�Q���1�a��!�B��(�A�b�!�H�a��A�h�?�����t��������4��#�.rc	���[nU"SS5U"SS5U"SS5U"SS5U"SS5U"SS5/n[R"U5 URUR	U5S5 g)Nr�r�r�rlr��
@r�r�s   rr��%TestMedianGrouped.test_even_fractions�sa�����!�Q���1�a��!�B��(�A�b�!�H�a��A�h��"�a��I�����t��������4��$�/rc���[nU"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5S5 g)Nr�6.5�7.5�8.5g@r�r s   rr�#TestMedianGrouped.test_odd_decimals�sO�����%��!�E�(�A�e�H�a��h��%��A�����t��������4��$�/rc��[nU"S5U"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5S5 U"S5U"S5U"S5U"S5U"S5U"S5/n[R"U5 URUR	U5S5 g)NrrQrRrS�@�@r�r s   rr�$TestMedianGrouped.test_even_decimals�s������%��!�E�(�A�e�H�a��h��%��!�E�(�K�����t��������4��#�.��%��!�E�(�A�e�H�a��h��%��!�E�(�K�����t��������4��#�.rc���/SQnURURUS5S5 /SQnURURUS5SSS9 /SQnURURUS	5S
5 g)N)
�@r�r�rSrSrKrKrNrmr�r�g@)rZr�r�rSrSrSrKrKrNrmr�g["8���@r:r;)��r[���r]r]r]�r^�,�@iTr�g�p@r<r�s  r�
test_interval�TestMedianGrouped.test_interval�sg��F��������4��.��6�L�����t�y�y��t�4�j�d��K�K��������4��,�e�4rc�4�/SQnUR[URU5 /SQnUR[URU5 /SQnSnUR[URX5 /SQnSnUR[URX5 g)N)�rdrd)rrrr)rdrr�)rLr��intervals   r�test_data_type_error�&TestMedianGrouped.test_data_type_errorsx�������)�T�Y�Y��5������)�T�Y�Y��5��������)�T�Y�Y��?��������)�T�Y�Y��?rrN)r7r8r9r:r	r=rArxrjr�r�rrrarfr<r6rrr.r.�s;��.�J�$0�$<�7�/�0�0�/�5�@rr.c�J�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)
�TestModeic�.�[RUlgrq)r=�moder�r�s rr	�TestMode.setUprrc�
�/SQ$)r�)r
r
r
r
r�r�r�r�rr�rr6r�s rr��TestMode.prepare_datas
��1�0rc�`�[SSS5nURURU5S5 gr�r�r�s  rr��TestMode.test_range_datas(���R��Q���������4��"�-rc��SnURURU5S5 SR5nURURU5S5 g)N�abcbdbrzfe fi fo fum fi fi�fi)rHr�r�r�s  r�test_nominal_data�TestMode.test_nominal_data#sE����������4��#�.�#�)�)�+��������4��$�/rc���[[S55n[S5H?nX/-n[R"U5 UR	URU5U5 MA g�Nr��rBr�r�r�rHr�)rLr�rmr�s    r�test_discrete_data�TestMode.test_discrete_data*sJ���E�"�I����r��A��s�
�A��N�N�1�����T�Y�Y�q�\�1�-�rc�N�/SQnURURU5S5 g)N)r
r
rrrrr�r�r�r�r�r�r�r�r�r�r�rr�r�s  r�test_bimodal_data�TestMode.test_bimodal_data2s!��B��	
������4��!�,rc�n�[[S55nURURU5S5 g)Nr�r)rBr�rHr�r�s  r�test_unique_data�TestMode.test_unique_data9s'���E�"�I���������4��!�,rc�F�UR[URS5 grqr�r�s r�test_none_data�TestMode.test_none_data?s��
	
���)�T�Y�Y��5rc�p�[R"SSS9nURURU5S5 g)Nr
r)rrr)r[�CounterrHr�)rLr�s  r�test_counter_data�TestMode.test_counter_dataFs0��

���!�q�)��	
������1��s�+rrN)r7r8r9r:r	r�r�rtryr|rr�r�r<r6rrriris/��$�1�
.�
0�.�-�-�6�,rric��\rSrSrSrSrg)�
TestMultiModeiQc��[RnURU"S5S/5 URU"S5/SQ5 URU"S5/5 g)N�aabbbbbbbbccr�aabbbbccddddeeffffgg)rr�r�rd)r=�	multimoderH)rLr�s  r�test_basics�TestMultiMode.test_basicsSsN���(�(�	�����>�2�S�E�:�����#9�:�O�L�����2���+rr6N)r7r8r9r:r�r<r6rrr�r�Qs��,rr�c�,�\rSrSrSrSrSrSrSrg)�	TestFMeaniZc
��[Rn[n[n/SQSS4U"S5U"S5U"S5/SS4U"SS	5U"S
S5U"SS
5/SS
4/SQSS4SS
U"SS
5/SS4S[	/SQ5SS44H@upEnU"U5nUR[
U5[U5 URXuU5 MB g)N�rmr��@�@�floats�3.5�4.0�5.25�decimalsr�rr�r
r��	fractions)TFTTF�333333�?�booleansrm�mixed types)r�r�rC�iterator)	r=�fmeanrrr�r�rrrH)rLr�r�r�r��
expected_meanr��actual_means        rr��TestFMean.test_basics\s���� � ������
�t�X�.���h��%��!�F�)�
,�d�J�?���1�g�q��A�w��"�a��
)�4��=�
-�t�Z�@��1�a��A�h�
��}�5�-�
�"�
#�T�:�6�*�%�D�� ��+�K��M�M�$�{�+�U�D�9����[��>�*rc���[Rn[RnURU5 U"/5 SSS5 URU5 U"[	/55 SSS5 UR[
5 U"S5 SSS5 UR[
5 U"/SQ5 SSS5 UR[
5 U"5 SSS5 UR[
5 U"/SQS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N|=f!,(df   g=f)N�r�Nr��r�r�r�F)r=r�r�rnr�r'�rLr�r�s   r�test_error_cases�TestFMean.test_error_casesms���� � ��$�4�4��
�
�
��
/��"�I�0�
�
�
��
/��$�r�(�O�0�
�
�
�y�
)��$�K�*�
�
�
�y�
)��.�!�*�
�
�
�y�
)��G�*�
�
�
�y�
)��,��#�*�
)�0�
/��
/�
/��
)�
)��
)�
)��
)�
)��
)�
)�sG�	D�D�	D-�)D>�E�6E �
D�
D*�-
D;�>
E�
E� 
E.c���[Rn[S5n[S5nUR[R
"U"SU/55S5 UR[R
"U"X#/55S5 UR[R"U"SU/55S5 UR[5 U"X3*/5 SSS5 g!,(df   g=f)N�Nan�Infr�r]�nan and infinity�infinity)	r=r�rr�rrr,rnr+)rLr��NaNr�s    r�test_special_values�TestFMean.test_special_values}s���� � ���E�l���E�l������
�
�5�"�c��#3�4�e�<�����
�
�5�#��#4�5�7I�J�����
�
�5�"�c��#3�4�j�A�
�
�
�z�
*��3��+��+�
*�
*�s�C�
C'c	�R�[Rn[RnURU"/SQS/S-5U"/SQ55 URU"/SQ/SQ5U"/SQ55 URU"[	/SQ5[	/SQ55U"/SQ55 URU5 U"/SQSS	/5 SSS5 URU5 U"[	/SQ5[	SS	/55 SSS5 URU5 U"S
S/SS/5 SSS5 URU5 U"[	S
S/5[	SS/55 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nj=f!,(df   g=f)
N)r�r�r�r3r�r�)r�r�r�)r�r�r)r�r�r�r��r�r�r1r
rr�r�r)r=r�r�rHr�rnr�s   r�test_weights�TestFMean.test_weights�sR��� � ��$�4�4������"�T�F�Q�J�/��"�#�	%�	
����,� 2�3��"�#�	%�	
����$�|�$�d�+=�&>�?��"�#�	%��
�
��
/��,��A��'�0�
�
�
��
/��$�|�$�d�A�q�6�l�3�0�
�
�
��
/��2�r�(�R��G�$�0�
�
�
��
/��$��B�x�.�$��A�w�-�0�0�
/�
0�
/��
/�
/��
/�
/��
/�
/�s0�5E%� E6�F�< F�%
E3�6
F�
F�
F&r6N)	r7r8r9r:r�r�r�r�r<r6rrr�r�Zs��?�"$� 	�1rr�c�<�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�VarianceStdevMixini���-���q=c��SSS[SS5[S54H%nURURU/5S5 M' g)Nr�g������3@g���%�Br�rz8.392rrir�s  rrj�$VarianceStdevMixin.test_single_value�s>���d�F�H�R��$4�g�g�6F�G�A����T�Y�Y��s�^�Q�/�Hrc��SSS[SS5[S54H3nSH*nU/U-nURURU5S5 M, M5 g)	Nr�r2g@�6��<Cr�r�z62.4802)rr�r�r�rrirws    rrx�-VarianceStdevMixin.test_repeated_single_value�sP���r�6�8�A�q�>�7�9�3E�F�A�&���s�5�y��� � ����4��!�4�'�Grc�x�S/S-nURU5nURUSSS9 URUS5 g)Ng.�F7ݚ�?r�r}g��ؗ�Ҍ<r;r)r�rdr�r�s   r�test_domain_error_regression�/VarianceStdevMixin.test_domain_error_regression�sE��"�"�5�(�����4������v�s���6������*rc��/SQnURU5nSnUVs/sHoDU-PM	 nnURURU5U5 gs snf)N)
g{�G�z�?gR���Q�?g
ףp=
�?gR���Q@g�p=
ף@g��Q�	@r@g�Q���@g�G�z�@g��Q�@gj�@)r�rd�rLr�r%�shiftrr�s      r�test_shift_data�"VarianceStdevMixin.test_shift_data�sO��K���9�9�S�>����#&�'�3�a�E�	�3��'����t�y�y����9��(��Ac��/SQnURU5nSnUVs/sHoDU-PM	 nnURURU5U5 gs snf)N)
r
r�r�r�r�r�r�r�r�r�iʚ;r�r�s      r�test_shift_data_exact�(VarianceStdevMixin.test_shift_data_exact�sL��/���9�9�S�>����#&�'�3�a�E�	�3��'�������4��(�3��(r�c���[S5Vs/sHn[R"SS5PM nnURU5nUR	UR[U55U5 gs snf)NrYr�r�)r�r�r�r�rHr��rLr�r�r%s    r�test_iter_list_same�&VarianceStdevMixin.test_iter_list_same�sV��05�T�{�;�{�!����r�1�%�{��;��9�9�T�?��������4��:�.��9��<s�!A-r6N)r7r8r9r:r/rjrxr�r�r�r�r<r6rrr�r��s'���C�0�
5�+�:�4�
:rr�c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�
TestPVariancei�c�.�[RUlgrq)r=�	pvariancer�r�s rr	�TestPVariance.setUp�s���(�(��	rc��[[S55n[R"U5 SnUR	URU5U5 g)Nr�gP�_Arxr�s   r�test_exact_uniform� TestPVariance.test_exact_uniform�s9���E�%�L�!�����t��$��������4��(�3rc�R�/SQnSnURURU5U5 g)N�r�r�rlr�g�6@r��rLr��exacts   rr�TestPVariance.test_ints�s$������������4��%�0rc���[nU"SS5U"SS5U"SS5U"SS5/nU"SS5nURU5nURXC5 URU[5 g)Nr
r�r�r�r��rr�rH�assertIsInstance�rLr�r�r�r�s     rr�TestPVariance.test_fractions��c�����!�Q���1�a��!�A�q�'�1�Q��7�3���!�Q������4�������'����f�h�/rc���[nU"S5U"S5U"S5U"S5/nU"S5nURU5nURXC5 URU[5 g)Nz12.1z12.2z12.5z12.9z0.096875�rr�rHr��rLr�r�r�r�s     rr!�TestPVariance.test_decimals�sY�����&�	�1�V�9�a��i��6��;���*�
�����4�������'����f�g�.rc��/SQnSnURU5nURX25 URU[5 g)N)rrr
g�q�q�?�r�rHr�r�rLr�r�r�s    r�test_accuracy_bug_20499�%TestPVariance.test_accuracy_bug_20499�7���������4�������'����f�e�,rrN)r7r8r9r:r	r�rrr!r�r<r6rrr�r��s ��)�4�1�0�/�-rr�c�>�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�TestVarianceic�.�[RUlgrq)r=�variancer�r�s rr	�TestVariance.setUps���'�'��	rc��SSS[SS5[S54H/nUR[RUR
U/5 M1 g)Nr�g33333�8@g�(G�!=Crhr1z4.2084�rrrnr=r�r�r�s  rrj�TestVariance.test_single_valuesB���d�F�H�R��$4�g�h�6G�H�A����j�8�8�$�)�)�a�S�I�Irc�R�/SQnSnURURU5U5 g)Nr�r1r�r�s   rr�TestVariance.test_intss$������������4��%�0rc���[nU"SS5U"SS5U"SS5U"SS5/nU"SS5nURU5nURXC5 URU[5 g)Nr
r�r�r�rr�r�s     rr�TestVariance.test_fractionsr�rc���[nU"S5U"S5U"S5U"S5/nSU"S5-U"S5-nURU5nURXC5 URU[5 g)Nrr�r�r�z9.5r�r�r�s     rr!�TestVariance.test_decimals'se�����!��a��d�A�a�D�!�A�$�'���!�E�(�
�1�Q�4������4�������'����f�g�.rc��SnURURU5S5 URURUSS9S5 g)N�rr�rr���xbarrr�r�s  r�test_center_not_at_mean�$TestVariance.test_center_not_at_mean0s<����������4��#�.�������4�c��2�C�8rc��/SQnSnURU5nURX25 URU[5 g)N)rrrgUUUUUU�?r�r�s    rr��$TestVariance.test_accuracy_bug_204995r�rrN)r7r8r9r:r	rjrrr!r�r�r<r6rrr�r�s&��(�J�
1�0�/�9�
-rr�c�,�\rSrSrSrSrSrSrSrg)�
TestPStdevi<c�.�[RUlgrq)r=�pstdevr�r�s rr	�TestPStdev.setUp>r�rc��[S5Vs/sHn[R"SS5PM nn[R"[
R"U55nURURU5U5 gs snf)NrYi��r7)	r�r�r�r�sqrtr=r�rHr�r�s    r�test_compare_to_variance�#TestPStdev.test_compare_to_varianceAs[��16�t��=��A����s�B�'���=��9�9�Z�1�1�$�7�8��������4��(�3��>��!A=c��SnURURU5S5 URURUSS9S5 g)N)r�r�r�r�r�r)�murVr�r�s  rr��"TestPStdev.test_center_not_at_meanGs<����������4��#�.�������4�C��0�#�6rc�D�UR[5 URS[R/5 SSS5 UR[5 URS[R
/5 SSS5 g!,(df   NN=f!,(df   g=f�Nr�rnr+r�rr!r]r�s r�test_gh_140938�TestPStdev.test_gh_140938M�c��
�
�
�z�
*��I�I�s�D�H�H�o�&�+�
�
�
�z�
*��I�I�s�D�H�H�o�&�+�
*�+�
*��
*�
*���"B�"B�
B�
BrN)	r7r8r9r:r	rr�rr<r6rrrr<s��&�4�7�'rrc�Z�\rSrSrSr\\R"S5S55rSr	Sr
g)�TestSqrtHelpersiUc�n�[R"[S5[SS55H�up[R"X5nURU[5 X3-U-U:XaM>URUS-S5 URX#S-
S--Us=:=(a
 X#S-S--:Os 5 M� g)Nr�r
rYr)	�	itertools�productr�r=�_integer_sqrt_of_frac_rtor�r�rHr�)rLr�mr�s    r�test_integer_sqrt_of_frac_rto�-TestSqrtHelpers.test_integer_sqrt_of_frac_rtoWs����%�%�e�C�j�%��4�.�A�D�A��4�4�Q�:�A��!�!�!�S�)��s�1�u��z�����Q�q�S�!�$��O�O�A�Q���
�N�Q�?�?��!�e�a�Z��?�@�Br�cpuc���S[S[S[4Sjn[Rn[S5HxnU"SU"S5-5nU"SU"S5-5S-nUR
XES	9 [XE5n[R"XE5nURU"Xg55 SSS5 Mz UR[R"S
S5S5 UR[5 [R"SS5 SSS5 UR[5 [R"SS5 SSS5 UR[5 [R"SS
5 SSS5 UR[R"S
S5[R"SS55 g!,(df   GM�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f)Nr�root�returnc�@�U(dUS:H$[R"U[R5n[R"U[R*5n[U5nU[U5-S-nU[U5-S-nUS-Us=:*=(a US-:*$s $)Nr}r)r�	nextafterr!r)rr �r_up�r_down�	frac_root�half_way_up�
half_way_downs       r�is_root_correctly_rounded�JTestSqrtHelpers.test_float_sqrt_of_frac.<locals>.is_root_correctly_roundedgs�����s�{�"��.�.��t�x�x�8�D� �N�N�4�$�(�(��;�F�#+�4�.�I�%.��$��%?�1�$D�K�'0�8�F�3C�'C�q�&H�M�!�A�%��>�>�k�Q�.>�>�>�>�>ri`�r�r3r
)�	numerator�denonimatorrr}rr�r)rrrr��	randranger�rvr=�_float_sqrt_of_fracr�rHrnr+�ZeroDivisionError)rLr)r-rmr+r,rr s        r�test_float_sqrt_of_frac�'TestSqrtHelpers.test_float_sqrt_of_fraccs���	?��	?��	?�4�	?�$�$�$�	��v��A�&�r�Y�r�]�':�;�I�(��y��}�)<�=��A�K����	��K�&�y�>��(�<�<�Y�T����� 9�!� B�C�L�K��	
����7�7��1�=�s�C�
�
�
�z�
*��*�*�2�q�1�+�
�
�
�z�
*��*�*�1�b�1�+��
�
�0�
1��*�*�1�a�0�2�	
����7�7��B�?��A_�A_�`a�cd�Ae�f�#L�K��+�
*��
*�
*��2�
1�s0�*9F2�+G� G�G'�2
G	�
G�
G$�'
G5c��[S5SS4[S5SS4[S5SS44GHupn[R"[R5 UR	[
R"X#5U5 SSS5 [R"[R5nU=RS-sl[U5[U5-n[RUl	UR5nSSS5 [R"[R5 W7nSSS5 UR	UW5 GM UR	[
R"S	S
5S5 UR[R5 [
R"SS
5 SSS5 UR[R5 [
R"S
S5 SSS5 UR[5 [
R"S
S	5 SSS5 UR	[
R"S
S5[
R"SS
55 g!,(df   GN�=f!,(df   GN=f!,(df   GNa=f!,(df   N�=f!,(df   N�=f!,(df   N�=f)Nz0.4481904599041192673635338663l:j�t9�)4]�!�l�7�3M�e'z0.7924949131383786609961759598lQ_Ar�,NE��*�z0.8500554152289934068192208727lkr�"-D��9}ZGr�rr
r}rr�r)rrVrW�DefaultContextrHr=�_decimal_sqrt_of_frac�prec�
ROUND_05UP�roundingrrnr^r/)rLr r+�denominator�ctx�high_prec_ratio�high_prec_root�target_roots        r�test_decimal_sqrt_of_frac�)TestSqrtHelpers.test_decimal_sqrt_of_frac�s���5�
6�8V�Xw�x�
�5�
6�8V�Xw�x�
�5�
6�8V�Xw�x�-
�(�D�[�
�%�%�g�&<�&<�=�� � ��!A�!A�)�!Y�[_�`�>��%�%�g�&<�&<�=�����A�
��")�)�"4�w�{�7K�"K��&�1�1���!0�!5�!5�!7��	>�
�%�%�g�&<�&<�=�-�o��>����T�;�/�!-
�&	
����9�9�!�Q�?��E�
�
�
�w�7�7�
8��,�,�R��3�9�
�
�
�w�7�7�
8��,�,�Q��3�9��
�
�0�
1��,�,�Q��2�2�	
����9�9�"�b�A�:�Cc�Cc�de�gh�Ci�j�3>�=��>�=��
>�=��9�
8��
8�
8��2�
1�sI�'I �(AI2�&J�J�J'�J8� 
I/	�2
J	�
J	�
J$�'
J5�8
Kr6N)r7r8r9r:rrr�requires_resourcer0r=r<r6rrrrUs8��
A�����u�%�*g�&��*g�X#krrc�2�\rSrSrSrSrSrSrSrSr	g)	�	TestStdevi�c�.�[RUlgrq)r=�stdevr�r�s rr	�TestStdev.setUp�s���$�$��	rc��SSS[SS5[S54H/nUR[RUR
U/5 M1 g)N�QgH�z�wi@gf7?+�Br�r�z35.719r�r�s  rrj�TestStdev.test_single_value�sA���f�f�h�q�"�o�w�x�7H�I�A����j�8�8�$�)�)�a�S�I�Jrc��[S5Vs/sHn[R"SS5PM nn[R"[
R"U55nURURU5U5 gs snf)NrYr�r�)	r�r�r�rrr=r��assertAlmostEqualr�r�s    rr�"TestStdev.test_compare_to_variance�s[��/4�T�{�;�{�!����r�1�%�{��;��9�9�Z�0�0��6�7�����t�y�y����9��<r
c�H�SnURURUSS9S5 g)Nr�r�r�rr�r�s  rr��!TestStdev.test_center_not_at_mean�s$����������4�c��2�C�8rc�D�UR[5 URS[R/5 SSS5 UR[5 URS[R
/5 SSS5 g!,(df   NN=f!,(df   g=frrr�s rr�TestStdev.test_gh_140938�rrrN)
r7r8r9r:r	rjrr�rr<r6rrrArA�s��%�J�
:�9�'rrAc�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�TestGeometricMeani�c��[RnURU"/SQ5S5 URU"SS/5S5 URU"S/5S5 [R"S5 [SS	5[SS
5[SS5[SSS
5[SSS5/SQ[S
5Vs/sHn[R"S5PM sn[S5Vs/sHn[R"SS5PM sn[S5Vs/sHn[R"SSS5PM sn4	Hvn[R"[[U55[S5[U5--nU"U5nUR[R"U[!U555 Mx gs snfs snfs snf)N)r�r7r��B@r�g"@g@g�1@l���;r
r�rYr�rr�r�)r�r�rlr��xr��I@��r�rKi�i�)r=�geometric_meanrIr��seedr��expovariate�lognormvariate�
triangularr�prodr�rrgr��iscloser)rLrVrm�rng�
gm_decimal�gm_floats      rr��TestGeometricMean.test_basics�se��#�2�2�����~�l�;�T�B����~�s�C�j�9�3�?����~�v�h�7��@����N�#��a��
��a����a�� ��c�6�1�%��f�c�2�&�'�38��<�@�<�a��#�#�D�)�<�@�;@��<�H�<�a��&�&�t�S�1�<�H�>C�E�l�K�l���"�"�4��t�4�l�K�
�C����3�w��#4�5�'�!�*�s�3�x�:O�P�J�%�c�*�H��O�O�D�L�L��5��3D�E�F�
��A��H��Ks�= F=�,!G�"Gc	�n�[Rn[n[nSn/SQS4U"S5U"S5U"S5/S4U"SS	5U"S
S5U"SS
5/S
4SS
U"SS
5/S4S[	/SQ5S44H=upVU"U5nUR[
U5[U5 URXtSS9 M? g)Ng�d�@r�r�r�r�r�r�r�rr�r
r�r�rmr�)r�rCr�r���places)	r=rVrrr�r�rrrI)rLrVr�r�r�r�r�r�s        r�test_various_input_types�*TestGeometricMean.test_various_input_types�s���#�2�2�������
�
�x�(���h��%��!�F�)�
,�j�9���1�g�q��A�w��"�a��
)�;�7��1�a��A�h�
��/�'�
�"�
#�Z�0�
�J�D�)��.�K��M�M�$�{�+�U�D�9��"�"�;�a�"�H�rc��[RnSnU"SU-SU-SU-/5nUR[R"USU-55 UR[R"U55 SnU"SU-SU-SU-/5nUR[R"USU-55 URUS5 g)Ngp~gK@g8@rRgpr})r=rVr�rr\r�r,�assertNotEqual)rLrV�large�big_gm�small�small_gms      r�test_big_and_small�$TestGeometricMean.test_big_and_small�s���#�2�2��������t�e�|�T�E�\� J�K��������V�T�E�\�:�;�������F�+�,���!�4�%�<����t�e�|�"L�M��������X�t�e�|�<�=����H�c�*rc�H�[Rn[RnURU5 U"/5 SSS5 URU5 U"/SQ5 SSS5 URU5 U"/SQ5 SSS5 URU5 U"S[R
*S/5 SSS5 URU5 U"[
/55 SSS5 UR[5 U"S5 SSS5 UR[5 U"/SQ5 SSS5 UR[5 U"5 SSS5 UR[5 U"/SQS5 SSS5 g!,(df   GNS=f!,(df   GNA=f!,(df   GN/=f!,(df   GN
=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)N)rm��r�)r}ror�rmr�r�r�r�)r=rVr�rnrr!r�r')rLrVr�s   rr��"TestGeometricMean.test_error_cases	sb��#�2�2��$�4�4��
�
�
��
/��2��0�
�
�
��
/��,�-�0�
�
�
��
/��,�-�0�
�
�
��
/��C�$�(�(��D�1�2�0�
�
�
��
/��4��8�$�0�
�
�
�y�
)��4� �*�
�
�
�y�
)��>�*�*�
�
�
�y�
)���*�
�
�
�y�
)��<��,�*�
)�!0�
/��
/�
/��
/�
/��
/�
/��
/�
/��
)�
)��
)�
)��
)�
)��
)�
)�sk�	F�F�8F+�F=�G�?	G �%G1�
H�2H�
F�
F(�+
F:�=
G�
G� 
G.�1
G?�
H�
H!c���[Rn[S5n[S5nUR[R
"U"SU/55S5 UR[R
"U"X#/55S5 UR[R"U"SU/55S5 UR[5 U"X3*/5 SSS5 URU"/SQ5S5 URU"/S	Q5S5 UR[R
"U"S
U/555 UR[R
"U"S
U/555 g!,(df   N�=f)Nr�r�r�r]r�r�)r�r}r�r})r�r~r�r)
r=rVrr�rrr,rnr+rH)rLrVr�r�s    rr��%TestGeometricMean.test_special_values"	s��#�2�2���E�l���E�l������
�
�>�2�s�)�#<�=�u�E�����
�
�>�3�*�#=�>�@R�S�����
�
�>�2�s�)�#<�=�z�J�
�
�
�z�
*��C��;�'�+�	
�����4�c�:������5�s�;�����
�
�>�1�c�(�#;�<�=�����
�
�>�1�c�(�#;�<�=�+�
*�s�E'�'
E5c���[RnSn/SQ/SQ/SQ/SQ/SQ/nUH3nURUS9 U"U5nURXRSS	9 SSS5 M5 g!,(df   MG=f)
Ng�Y�};t@)rr�r�r�)rr�r�rW)rr�rrW)rrKrrW)r�rKrrW)�vr�rb)r=rVrvrI)rLrVr�r�rtr�s      r�test_mixed_int_and_float�*TestGeometricMean.test_mixed_int_and_float3	sn��#�2�2��(�
����� �
���A������"�,�Q�/���&�&�{�!�&�L�#�"��"�"�s�A�
A-	r6N)r7r8r9r:r�rdrlr�r�rur<r6rrrPrP�s#��G�,I�$
+�-�,>�"MrrPc�z�\rSrSr\R
"S5S5rSr\R
"S5S5rSr	g)�TestKDEiD	rc	�H�[Rn[Rn/SQn/SQnS$SjnUH>nURUS9 U"USUS9nU"USS5nUR	US	S
S9 SSS5 M@ /SQn	S
n
SnUHNnURUS9 U"X�USS9nU"X�U5nU"USUS5nUR	U"U5US
S9 SSS5 MP URU5 U"/S	S9 SSS5 UR[5 U"SS/S5 SSS5 UR[5 U"[U5S5 SSS5 URU5 U"USS9 SSS5 URU5 U"USS9 SSS5 UR[5 U"USS9 SSS5 URU5 U"US	SS9 SSS5 UR[5 U"US	SS5 SSS5 Sn
SnU"XJU5nURURS5 URXgR5 UR[U
5UR5 U"S/S	S5nURU"S5S5 URU"S	5S5 SS /n	U"U	S!S"5nURU"S#5S5 U	RS#5 URU"S#5S5 g!,(df   GM�=f!,(df   GM�=f!,(df   GN4=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f)%N�
�normal�gauss�logistic�sigmoid�rectangularr�rZ�	parabolic�epanechnikov�quartic�biweight�	triweight�cosine�����������������皙����ٿ�ffffff�?�ffffff@�������@c�p^^�UT-
U-mUU4Sj[U55n[[X55T-$)z6Numeric approximation of a definite function integral.c3�:># �UHnTUS-T--v� M g7f)rNr6)rrm�dx�lows  ��rr�6TestKDE.test_kde.<locals>.integrate.<locals>.<genexpr>V	s����D�|�!���C��2�~�-�|�s�)r��sumr�)r�r��high�steps�	midpointsr�s `   @r�	integrate�#TestKDE.test_kde.<locals>.integrateS	s4�����*��%�B�D�u�U�|�D�I��s�4�+�,�r�1�1r��kernelr
��hr�r�r�rr�rb)r�r�r�r�r�g%@T��
cumulativei���r�r\�defr}��rA�bogusr|r��pdfrr�rr
rrrZr�)r�)r=�kder�rvrIrnr'r�rHr7rxr;�reprr�r�)
rLr�r��kernels�sampler�r��f_hat�arear�r�r�cdfs
             r�test_kde�TestKDE.test_kdeF	s���n�n��$�4�4��A��3��	2��F����V��,��F�c�&�9�� ���R�0���&�&�t�S��&�;�-�,���������F����V��,��$�6�d�;���D�V�,�� ���Q��8���&�&�s�1�v�t�A�&�>�	-�,���
�
��
/���c�N�0�
�
�
�y�
)������$�*�
�
�
�y�
)���V��c�"�*�
�
�
��
/���#��0�
�
�
��
/���$��0�
�
�
�y�
)���%� �*�
�
�
��
/���#�g�.�0�
�
�
�y�
)����W�d�+�*�

�����F�v�&���������/��
�
�f�m�m�,��
�
�d�1�g�u�}�}�-�
�Q�C��i�(������t��c�*�����s��S�)��1�v���D�#�|�,������s��S�)����C�����5��:�s�+�u-�,��-�,��0�
/��
)�
)��
)�
)��
/�
/��
/�
/��
)�
)��
/�
/��
)�
)�sx�$K.�4L�L�L&�-L8�M
�:M�M.�	N�&N�.
K>	�
L	�
L#�&
L5�8
M�

M�
M+�.
M=�
N�
N!c
�p�[Rn[Rn[SS5Vs/sHo3S-PM	 nnUR	5HMupVURUS9 U"S/SUSS9nUH nUR
U"U"U55US	S
9 M" SSS5 MO gs snf!,(df   Mf=f)Nr�r�r�r�r}rT)r�r�r�r�rb)r=�_kernel_invcdfsr�r��itemsrvrI)	rL�kernel_invcdfsr�rm�xarrr��invcdfr�rs	         r�test_kde_kernel_invcdfs�TestKDE.test_kde_kernel_invcdfs�	s���#�3�3���n�n�� %�T�3�/�0�/�!�#��/��0�,�2�2�4�N�F����V��,��3�%�3�v�$�G���A��*�*�6�#�a�&�>�1�Q�*�G��-�,�5��1�,�,�s�B!�#1B&�&
B5	c�^^^^�[Rn[Rn/SQn/SQnUHCnURUS9 U"USUS9m[	S5Vs/sH
nT"5PM nnSSS5 ME URU5 U"/SS9 SSS5 UR[5 U"S	S
/S5 SSS5 UR[5 U"[U5S5 SSS5 URU5 U"USS9 SSS5 URU5 U"USS9 SSS5 UR[5 U"US
S9 SSS5 URU5 U"USSS9 SSS5 SnSnU"XHU5mURTRS5 URUTR5 UR[U5TR5 /SQn	[	SS5V
s/sHo�S-PM	 nn
SnSnSmUU4Sjn
UU4SjnUH�nURUS9 U"X�USS9m[[	U5Vs/sH
nT"5PM sn5m[R"X�USS9mUH4n
UR[ R""U
"U
5U"U
5SS95 M6 SSS5 M� SS /n	U"U	S!S"5mUR%['[	S#5Vs/sH
nT"5PM sn5S5 U	R)S$5 UR+['U4S%j[	S#555S5 gs snf!,(df   GM*=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNn=f!,(df   GN^=fs sn
fs snf!,(df   GM�=fs snf)&Nrzr�r�r
r�r�rr�r\r�r�r}rAr�r��rand)r�r�r�r�r�r�r	g������,@g333333.@g������.@g������/@g1@r��i@Bg�?r�c�>�[R"TU5n[R"TUT-5nX!-
[T5-$rq)�bisect�bisect_leftrg)rrm�j�
big_sampler�s   ��r�
p_observed�+TestKDE.test_kde_random.<locals>.p_observed�	s<����"�"�:�q�1�A��"�"�:�q�2�v�6�A��E�S��_�,�,rc�,>�T"UT-5T"U5-
$rqr6)r�F_hatr�s ��r�
p_expected�+TestKDE.test_kde_random.<locals>.p_expected�	s�����R��=�5��8�+�+rliA� ��rWTr�g����Mb@?��abs_tolr
rr�rZr�r�c3�2># �UHnT"5v� M g7frqr6)rrmr�s  �rr�*TestKDE.test_kde_random.<locals>.<genexpr>�	s����;�{�!�t�v�v�{�s�)r=�
kde_randomr�rvr�rnr'r�rHr7rxr;r�r�r�r�rr\�
assertLessr"r�r�)rLr�r�r�r�r�rm�
selectionsr�r�rr�rr�r�r�r�r�r�s               @@@@r�test_kde_random�TestKDE.test_kde_random�	s.����*�*�
�$�4�4��A��3���F����V��,�!�&�C��?��.3�B�i�8�i��d�f�i�
�8�-�,���
�
��
/��r�S�!�0�
�
�
�y�
)���u�~�s�+�*�
�
�
�y�
)��t�F�|�S�)�*�
�
�
��
/��v��&�0�
�
�
��
/��v��%�0�
�
�
�y�
)��v��'�*�
�
�
��
/��v��W�5�0�

�����&�V�,���������/��
�
�f�d�l�l�+��
�
�d�1�g�t�|�|�,�T�� %�d�C� 0�1� 0�1�B�� 0��1�����
��	-�	,��F����V��,�!�$�6�
�C��#�U�1�X�$>�X��T�V�X�$>�?�
�"���t��4�H���A��O�O�D�L�L��A��
�1�
�W]�$^�_��
-�,���1�v���$��<�0������U�4�[�9�[��T�V�[�9�:�B�?����C�����3�;�u�T�{�;�;�R�@��}9�-�,��0�
/��
)�
)��
)�
)��
/�
/��
/�
/��
)�
)��
/�
/��2��&%?�-�,��:s��M	�M�(M	�M�,M.�N�N�"N$�N6�(	O�5O�-O$�O�AO$�'O7�M	�	
M	�
M+�.
M=�
N�
N!�$
N3�6
O�
O�O$�$
O4	r6N)
r7r8r9r:rr?r�r�r�r<r6rrrxrxD	sK�����u�%�M,�&�M,�^
H�
���u�%�KA�&�KArrxc�2�\rSrSrSrSrSrSrSrSr	g)	�
TestQuantilesi�	c�V^�[Rn/SQn[R"U5 S/4SS/4SSS/4S/S	Q4S
/SQ4S/S
Q4S/SQ4S/SQ4S/SQ4S/SQ44
GHfup4UR	XA"X#S95 UR	[U"X#S95US-
5 [[[4HTmU"[TU5US9nURU4SjU55 UR	U[[TU555 MV [U5S:�aUR	U"XCS9U5 [U5nSUS-US-
nSUS-US-
nX'U/-n	UR	U"X#S9U"X�SS9X245 Sn
[[X�55nU"[X�5US9nUR[S[X�5555 GMi [SS5HRn
[R "[S 5U
S!9nU"U5up�nUR	U[R""U55 MT g)"N)rSr�r�r`i^r
r�@o@r��i@�t@r�)�d@r���t@r�)�a@��k@�@r@��u@r�)�^@r�r�r���u@r�)�Y@r�g�j@r�g�r@r�gXv@r�)	gV@r�gg@r�r�r�g`t@r�g�v@r�)�T@r�r�r�� l@r�g�q@r�r�r�g�v@r�)gR@gZ@r�ge@r�r��n@g�p@r�r�g�t@r�g@v@gw@�rc3�R># �UHn[[U5T:H5v� M g7frq��allr�rr�datatypes  �rr�4TestQuantiles.test_specific_cases.<locals>.<genexpr>
�"����I�&�Q��D��G�x�$7� 8� 8�&���$'rrr��	inclusive�r�methodc��SU-S-
$�Nrmg3333�J�@r6r
s rr��,TestQuantiles.test_specific_cases.<locals>.f
����Q�w��)�)rc3�R# �UHup[R"X5v� M g7frq�rr\�rrnrs   rrr�"
����M�}�t�q����Q� 2� 2�}���%'rr���k)r=�	quantilesr�r�rHrgrrrr�r�rBr�r�rkr��choicesr�)rLr�r�rr%r��sdata�lo�hi�padded_datar��exp�actr��q1�q2�q3r�s                 @r�test_specific_cases�!TestQuantiles.test_specific_cases�	s2����(�(�	�(�����t��
��G�
���L�
�����
�%�&�
�,�-�
�3�4�
�A�B�
�O�P�
� �
!�
�5�
6�
�K�A�
���X�y��';�<����S��4�!5�6��A��>�"�G�X�6��"�3�x��#6�!�<�����I�&�I�I�� � ���c�(�H�.E�)F�G�7�
�8�}��!�� � ��8�!9�8�D��4�L�E��U�1�X���a��(�B��U�2�Y���r��*�B��b��/�K�����$�$��+�;�?��	�
�
*��s�1�'�(�C��C��L�A�.�C��O�O�C�M�s�3�}�M�M�N�S
�V�q�"��A��>�>�%��*��2�D�"�4��J�B�B����R��!2�!2�4�!8�9�rc�t^�[Rn/SQn[R"U5 S/4SS/4SSS/4S/S	Q4S
/SQ4S/S
Q4S/SQ4S/SQ4S/SQ4S/SQ44
H�up4UR	XA"X#SS95 UR	[U"X#SS95US-
5 [[[4HUmU"[TU5USS9nURU4SjU55 UR	U[[TU555 MW Sn[[Xd55nU"[Xb5USS9nUR[S[Xx5555 M� UR	U"SS/SSS9/SQ5 UR	U"[SS5SSS9/SQ5 [S5V	s/sHn	[R"S 5PM nn	U"US!SS9n
UR![#U55 UR![%U55 U"US!S"9nUR	XJ5 [SS#5HQn[R&"[S5US$9nU"USS%9up�nUR	U
[R("U55 MS UR	U"S/SS"9/S&Q5 UR	U"S/SS'S9/S&Q5 gs sn	f)(N)r�r�i�i r
r��r@r�r��y@r�)��e@r�@@r�)r�r���v@���@r�)��b@r�rr���@r�)g0a@�r�rgpw@rgP�@r�)	g@`@r�g�g@r�rrg�{@rg@�@r�)g@_@r	rr�r�rr�rrr
g�@r�)r�g�a@r�g�f@r�r�g�q@r�rrg~@rg�@g��@r�r�c3�R># �UHn[[U5T:H5v� M g7frqr�r�s  �rr�>TestQuantiles.test_specific_cases_inclusive.<locals>.<genexpr>C
r�r�c��SU-S-
$r�r6r
s rr��6TestQuantiles.test_specific_cases_inclusive.<locals>.fF
r�rc3�R# �UHup[R"X5v� M g7frqr�r�s   rrr
J
r�r�rr�)	�$@r�g>@gD@rTgN@g�Q@r�g�V@r�i�r�� r�rr��r��rrr�	exclusive)r=r�r�r�rHrgrrrr�r�rBr�rkr�r-r�r�r"r�r�)rLr�r�rr%r�r�r�r�rmr$r�r�r�r�r�s               @r�test_specific_cases_inclusive�+TestQuantiles.test_specific_cases_inclusive)
s�����(�(�	�#�����t��
��G�
���L�
�����
�%�&�
�,�-�
�3�4�
�>�?�
�P�Q�
�'�
(�
�5�
6�
�K�A�
���X�y��;�'O�P����S��4�[�!I�J�A�PQ�E�R�"�G�X�6��"�3�x��#6�!�K�P�����I�&�I�I�� � ���c�(�H�.E�)F�G�7�

*��s�1�'�(�C��C��L�A�k�B�C��O�O�C�M�s�3�}�M�M�N�5
�8	
����A�s�8�r�+�F�O�	Q�����5��C�=�B�{�K�O�	Q�
38��*�=�*�Q�� � ��(�*��=��4�2�k�:�����C��I�����C��I���T�R�(������*��q�"��A��>�>�%��*��2�D�"�4��<�J�B�B����R��!2�!2�4�!8�9��	
����B�4�1�-�/A�B�����B�4�1�[�A�CU�V��>s�( J5c��[Rn[SS5H<nS/U-nURU"U5/SQ5 URU"USS9/SQ5 M> g)Nrr�rrr�r)r=r�r�rH)rLr�rr�s    r�test_equal_inputs�TestQuantiles.test_equal_inputsd
sW���(�(�	��q�"��A��6�A�:�D����Y�t�_�.@�A����Y�t�K�@�.�
0�rc��[RnSn[U5Vs/sHn[R"S5PM nn[[
U55U:wa?UR[R"S55 [[
U55U:waM?UR5 SHUnX%-nURU"XES9Vs/sHn[R"XG5PM sn[[XbU555 MW SHonX%-X%-S-1nU"XES9Vs/sHn[R"XG5PM n	n[X�SS5V
Vs1sH	up�Xz-
iM nn
nURX�:*5 Mq gs snfs snfs snfs snn
f)Nr�皙�����?)
r
rr�r�r�r3r�r�rrYrUr�r�r�)
rlrh�;�m��i;i�isi�i)&r
)r=r�r�r�rXrg�setr��sortrHr�rBrkr�)rLr��totalrmr�r�
group_size�q�group_sizes�pos�p�sizess            r�test_equal_sized_groups�%TestQuantiles.test_equal_sized_groupsl
sW���(�(�	���16�u��>��A��"�"�3�'���>��#�d�)�n��%��K�K��*�*�3�/�0��#�d�)�n��%��	�	��O�A���J����1:�4�1E�F�1E�A����t�'�1E�F��U�:�j�9�:�
<�O�E�A� �:�u�z�A�~�6�K�3<�T�3G�H�3G�a�6�=�=��)�3G�C�H�'*�3�A�B��'8�9�'8�t�q�Q�U�'8�E�9��O�O�E�0�1�	E��?��G��I��9s� E:� E?
� F�F	c� �[Rn[RnUR[5 U"5 SSS5 UR[5 U"/SQSSS9 SSS5 UR[5 U"/SQS5 SSS5 URU5 U"/SQSS9 SSS5 URU5 U"/SQSS9 SSS5 UR[5 U"/SQSS9 SSS5 UR[
5 U"/SQSS	9 SSS5 URU5 U"/SS9 SSS5 UR[5 U"/S
QSS9 SSS5 g!,(df   GN==f!,(df   GN'=f!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nr�rlr�r�rrr
�Xr)r�Nr1)r=r�r�rnr'r+)rLr�r�s   rr��TestQuantiles.test_error_cases�
s^���(�(�	�$�4�4��
�
�
�y�
)��K�*�
�
�
�y�
)��l�B�!�,�*�
�
�
�y�
)��l�A�&�*�
�
�
��
/��l�a�(�0�
�
�
��
/��l�b�)�0�
�
�
�y�
)��l�c�*�*�
�
�
�z�
*��l�3�/�+�
�
�
��
/��b�A��0�
�
�
�y�
)��n��*�*�
)�!*�
)��
)�
)��
)�
)��
/�
/��
/�
/��
)�
)��
*�
*��
/�
/��
)�
)�sk�E4�F�F�(
F*�
F;�2
G�
G�<G.�!
G?�4
F�
F�
F'�*
F8�;
G	�
G�
G+�.
G<�?
H
r6N)
r7r8r9r:rrrr)r�r<r6rrr�r��	s��4:�l9W�v0�2�.+rr�c� �\rSrSrSrSrSrg)�TestBivariateStatisticsi�
c��/SQSS/4SS//SQ44H�upUR[R5 [R"X5 SSS5 UR[R5 [R"X5 SSS5 UR[R5 [R
"X5 SSS5 M� g!,(df   N�=f!,(df   Nb=f!,(df   M�=f)Nr)r
r�rnr=r��
covariance�correlation�linear_regressionrRs   r�test_unequal_size_error�/TestBivariateStatistics.test_unequal_size_error�
s���
��A�����V�Y��
�D�A��"�"�:�#=�#=�>��%�%�a�+�?��"�"�:�#=�#=�>��&�&�q�,�?��"�"�:�#=�#=�>��,�,�Q�2�?�>�
�?�>��>�>��>�>�s#�C�3C&�1C7�
C#	�&
C4	�7
D	c�2�//4/SS/4SS//4S/S/4S/SS/4SS/S/44H�upUR[R5 [R"X5 SSS5 UR[R5 [R"X5 SSS5 UR[R5 [R
"X5 SSS5 M� g!,(df   N�=f!,(df   Nb=f!,(df   M�=f)Nr
rr1rRs   r�test_small_sample_error�/TestBivariateStatistics.test_small_sample_error�
s���
��H�
�!�Q��M���W�b�M��T�A�4�L��T�A�q�7�O���W�q�d�O�

�D�A��"�"�:�#=�#=�>��%�%�a�+�?��"�"�:�#=�#=�>��&�&�q�,�?��"�"�:�#=�#=�>��,�,�Q�2�?�>�
�?�>��>�>��>�>�s$�C%�C6�D�%
C3	�6
D	�
D	r6N)r7r8r9r:r5r8r<r6rrr/r/�
s��
3�3rr/c��\rSrSrSrSrSr\\R"\
S5\RS555r
SrSrg	)
�TestCorrelationAndCovariancei�
c��/SQ/SQS4/SQ/SQS4/SQ/SQS4/SQ/SQS4/SQ/SQS	44HRupnUR[R"X5U5 UR[R"X5U5 MT g)
Nr)r
�rr�r�r)r�rr
)r
rr
r)r
r�rr�rIr=r3r2)rLrr-r�s    r�test_results�)TestCorrelationAndCovariance.test_results�
s|��
�	�1�%�
��b�)�
�	�2�&�
�	�1�%�
�	�3�'�
�L�A�&�
�"�"�:�#9�#9�!�#?��H��"�"�:�#8�#8��#>��G�
rc�L�/SQn/SQnUR[R"X5S5 UR[R"X5S5 /SQnUR[R"X5S5 UR[R"X5S5 g)Nr))r�r1r�rr�)r�rg333333�?r
r�r>rRs   r�test_different_scales�2TestCorrelationAndCovariance.test_different_scales�
s}���������z�5�5�a�;�S�A����z�4�4�Q�:�A�>������z�5�5�a�;�Q�?����z�4�4�Q�:�C�@rc
��[S5H�n[R"5n[R"5n[R"X#-5n[
R"X#5nURX#XES9 URXE5 SSS5 M� Sup#nUR[
R"X#5U5 UR[R"X#-5U5 [RR[RR-nUR[
R"Xw5U5 [RRnUR[
R"X�5U5 SSSSSS	[R [R *[R"[R"*/
n	[$R&"U	S
S9GHup#[R"X#-5n[
R"X#5nURX#XES9 [+U[,5(a#US:XaURUS5 SSS5 MUR/U[05 [R2"U5(a0UR5[R2"U55 SSS5 M�URXT5 UR[7U5[7U55 SSS5 GM  g!,(df   GM=f![(a SnGN&f=f![(a SnGN"f=f!,(df   GMl=f)
Nr�)rr-r%r$�g?�4�ܶ�?gҚz�v�?g�SdP���?r}r~rr�r�ror)�repeatr+)r�r�rXrrr=�	_sqrtprodrvrIrHrg�sys�
float_infor��epsilonr"r]r!rrr+rrAr�rrr�r)
rLrmrr-r%r$�target�smallest�biggest�special_valuess
          r�*test_sqrtprod_helper_function_fundamentals�GTestCorrelationAndCovariance.test_sqrtprod_helper_function_fundamentals�
s����s��A��"�"�$�A��"�"�$�A��y�y���'�H��)�)�!�/�F�������I��&�&�x�8�J�I��R���f�����-�-�a�3�V�<����D�I�I�a�e�,�f�5��>�>�%�%����(>�(>�>������-�-�h�A�8�L��.�.�$�$������-�-�g�?��I��t�S�$��T��(�(�T�X�X�I�t�x�x�$�(�(��D���%�%�n�Q�?�D�A�
(��9�9�Q�U�+��
&�#�-�-�a�3��������I��h��,�,��\�1I��$�$�V�\�:��J�I��%�%�f�e�4��:�:�h�'�'��O�O�D�J�J�v�$6�7��J�I�� � ��2�� � ��f��t�H�~�>�J�I�@�!J�I��&�
(�'��
(���
&�%��
&��I�I�sI�7L�%L�>L'�$/L:�AL:�>5L:�
L	�L$�#L$�'L7�6L7�:
M
	z8accuracy not guaranteed on machines with double roundingc��SupnUR[R"X5U5 UR[R
"X-5U5 S[S[S[4SjnSnSn[S5Hqn[R"5n[R"5n[R"X5n[R
"X-5n	U"X5n
XXU
:H-
nXiU
:H-
nMs URXV5 g)NrErr-r!c��[R"U5n[R"U5n[R"5nSUl[	X-R55sSSS5 $!,(df   g=f)Nr�)rVrrWr5rr)rr-r9s   r�reference_value�eTestCorrelationAndCovariance.test_sqrtprod_helper_function_improved_accuracy.<locals>.reference_valuesO������"�A�����"�A��%�%�'�3�����a�e�\�\�^�,�(�'�'�s�"A.�.
A<rr�)rHr=rGrgrrrr�r�rXr�)rLrr-rKrS�new_agreements�old_agreementsrmr��old�refs           r�/test_sqrtprod_helper_function_improved_accuracy�LTestCorrelationAndCovariance.test_sqrtprod_helper_function_improved_accuracy�
s���R���f�����-�-�a�3�V�<����D�I�I�a�e�,�f�5�	-�u�	-��	-�5�	-������v��A��"�"�$�A��"�"�$�A��&�&�q�,�C��)�)�A�E�"�C�!�!�'�C��c�z�*�N��c�z�*�N��	
���>�:rc���/SQn/SQnUR[R"XSS9S5 UR[5 [R"XSS9 SSS5 g!,(df   g=f)N)
�8�K�-rror%�:�P�Lro)
�Br�rur�Ar\r�Mrp�?�rankedrgl�\�e�?�
bad_method)rIr=r3rnr+)rL�reading�mathematicss   r�test_correlation_spearman�6TestCorrelationAndCovariance.test_correlation_spearmans[��;��>�����z�5�5�g�S[�\�1�	3��
�
�z�
*��"�"�7��M�+�
*�
*�s�A"�"
A0r6N)r7r8r9r:r?rBrOrrU�skipIf�HAVE_DOUBLE_ROUNDINGr�cpython_onlyrYrjr<r6rrr;r;�
sU��	H�A�)?�V�
�_�_�)�O�Q����;��Q��;�6Nrr;c�,�\rSrSrSrSrSrSrSrg)�TestLinearRegressioni*c��/SQn/SQnUR[R5 [R"X5 SSS5 g!,(df   g=f)N)r
r
r
r))rnr=r�r4rRs   r�test_constant_input_error�.TestLinearRegression.test_constant_input_error,s:������
�
�
�z�9�9�
:��(�(��.�;�
:�
:�s�A�
Ac
��/SQ/SQSS4/SQ/SQSS4/SQ/SQSS4/SQ/SQSS	4/SQ/S
QSS4/SQ/SQS
S4/SQ/SQSS44H@upp4[R"X5upVURXc5 URXT5 MB g)Nr))rrrrr
)r�r�r�r�)r�r3r�r�rr=r)r�r6rr�)r�g������@rDr�r�)r=r4rI)rLrr-�true_intercept�
true_slope�slope�	intercepts       rr?�!TestLinearRegression.test_results2s���
�	�1�a�(�
�	�1�a�(�
���a�0�
��b�!�,�
��a��,�
��b�!�,�
���C�0�1
�,�A�.� *�;�;�A�A��E��"�"�9�=��"�"�5�5�1
rc��/SQn/SQn[R"XSS9up4URUS5 URUS5 g)N)r�r�r1ru)�i�ibiT��proportionalg�N�4@r})r=r4rIrH�rLrr-rwrxs     r�test_proportional�&TestLinearRegression.test_proportional@sA���� ��%�7�7��4�P������u�j�1�����C�(rc��[SS5[SS5/n[SS5[SS5/n[R"X5up4UR[	U[
55 UR[	U[
55 [R"XSS9up4UR[	U[
55 UR[	U[
55 g)Nrr�r�r�r�Tr|)rr=r4r�rrr~s     r�test_float_output�&TestLinearRegression.test_float_outputGs���
�a��^�X�a��^�,��
�a��^�X�a��^�,��%�7�7��=������
�5�%�0�1����
�9�e�4�5�%�7�7��4�P������
�5�%�0�1����
�9�e�4�5rr6N)	r7r8r9r:rrr?rr�r<r6rrrprp*s��/�6�)�6rrpc���\rSrSrSrSrSrSrSrSr	\
R\
R"S5S	55r
S
rSrSrS
rSrSrSrSrSrSrSrSrSrg)�TestNormalDistiQc��URRSS5nUR[5 [	U5 SSS5 UR[
UR5S5 g!,(df   N4=f)Nr_r)�_mu�_sigma)r��
NormalDistrnr'�varsrHrC�	__slots__�rL�nds  r�
test_slots�TestNormalDist.test_slotsZsU��
�[�[�
#�
#�C��
,��
�
�
�y�
)���H�*�����r�|�|�,�.?�@�*�
)�s�A,�,
A:c��URRSS5nURURS5 URURS5 URUR
S5 URR5nURURS5 URURS5 URUR
S5 UR
URR5 URRSS5 SSS5 "SSURR5nU"S	S
5nUR[U5U5 g!,(df   NR=f)Nrr�i!rr
i����c��\rSrSrSrg)�GTestNormalDist.test_instantiation_and_attributes.<locals>.NewNormalDistiqr6Nr�r6rr�
NewNormalDistr�qr�rr�r�r�)	r�r�rHr}rCr�rnr�r)rLr�r��nnds    r�!test_instantiation_and_attributes�0TestNormalDist.test_instantiation_and_attributes`s��
�[�[�
#�
#�C��
,��������#�&�������2�&�������e�,��[�[�
#�
#�
%��������!�$�������1�%�������d�+��
�
�t�{�{�:�:�
;��K�K�"�"�3��,�<�	�D�K�K�2�2�	��C��#������c��M�2�<�
;�s�E-�-
E;c��URRn/SQnURURU5U"SS55 URUR[	U55U"SS55 URUR[U55U"SS55 UR
URR5 UR/5 SSS5 UR
URR5 URS/5 SSS5 "SSU5nURU5nUR[U5U5 g!,(df   N�=f!,(df   NW=f)N)�`r��Zr4�nr�r�r�c��\rSrSrSrg)�BTestNormalDist.test_alternative_constructor.<locals>.NewNormalDisti�r6Nr�r6rrr�r��r�rr�)	r�r�rH�from_samplesrCr�rnr�r)rLr�r�r�r�s     r�test_alternative_constructor�+TestNormalDist.test_alternative_constructorvs���[�[�+�+�
�%������0�0��6�
�2�q�8I�J�����0�0��t��=�z�"�a�?P�Q�����0�0��d��<�j��Q�>O�P�
�
�
�t�{�{�:�:�
;��#�#�B�'�<�
�
�
�t�{�{�:�:�
;��#�#�R�D�)�<�	�J�	��(�(��.������c��M�2�<�
;��
;�
;�s�
E�	E-�
E*�-
E;c�|�URRnSup#U"X#5nSnURU5nUR[	U5U5 UR[[
[U55[15 URRU5nURX#S--
Us=:*=(a
 X#S--:*Os 5 SnURUSS9nURUSS9n	URUSS9n
URUSS9nURX�5 URX�5 URX�5 g)N)r�rKrYr�r�zhappiness and joyr�ztrouble and despair)r�r��samplesrHrgr r�rrr}r�rg)rLr�r�sigmar,rr�r��data1�data2�data3�data4s            r�test_sample_generation�%TestNormalDist.test_sample_generation�s���[�[�+�+�
��	���r�!�����y�y��|������T��A�&�����S��t�_�-��w�7��{�{����%������1�W���<�<��1�W��<�=�
���	�	�!�"5�	�6���	�	�!�"7�	�8���	�	�!�"5�	�6���	�	�!�"7�	�8������&�����&����E�)rc	���URRnU"SS5nURURS5URS55 URURS5URS55 [	S5H9nURURSU-
5URSU-55 M; Sn[	SS5HKnUR
XT-5UR
U5-
U-nURURU5US	S
9 MM U"5n[/SQ5HLupXURURUS-5US	S
9 URURU*S-5US	S
9 MN U"SS
5n	URURR5 U	RS5 SSS5 URUR[S55S5 URUR[S55S5 UR[R"UR[S5555 g!,(df   N�=f)Nr�r�r�r�r3gP?r�r�r�rb)2�+��ݓ��?r�r�ggDio��?g������?gV}��b�?g�Q�|�?gF���x�?g��g��s�?g�٬�\m�?g�� �rh�?g�K7�A`�?g��|гY�?g����Q�?g���QI�?gsh��|?�?g�=yX�5�?g|a2U0*�?g��Q��?g���N@�?g�/�$�?g~��k	��?g]�C����?gw��/��?g�~�:p��?g�>W[���?gM�
O��?gW[����?g鷯��?g{�G�z�?g
q���h�?g�|a2U�?g��K7�A�?gvq
�-�?gj�t��?g�c]�F�?g�\�C���?gףp=
��?g�����?ga2U0*��?g�y�):��?g(��y�?g��N@a�?gf�c]�F�?g"lxz�,�?g�O��n�?g�3��7��?g�e�c]��?g��n���?g��T����?r�r�-Infr}r�r�)r�r�r�r�r�rIr�rjrnr�rHrr�rr)
rLr�r,rmr�r�est_pdf�Z�px�Ys
          r�test_pdf�TestNormalDist.test_pdf�s����[�[�+�+�
��s�B���������b�	�1�5�5��:�.�������c�
�A�E�E�#�J�/��r��A��"�"�1�5�5��q��>�1�5�5��q��>�B�����r�3��A��u�u�Q�V�}�q�u�u�Q�x�/�2�5�G��"�"�1�5�5��8�W�Q�"�?� �
�L��� 
��E�A�
�"�"�1�5�5��U��#3�R��"�B��"�"�1�5�5�!��e��#4�b��"�C��
�s�A���
�
�
�t�{�{�:�:�
;�
�E�E�"�I�<�	
������u�V�}�-�s�3�������u�U�|�,�c�2�����
�
�1�5�5��u��#6�7�8�<�
;�s�7I#�#
I1c	���URRnU"SS5n[SS5Vs/sHo2RU5PM nnUR	[[
[U55[15 UR	U[U55 UR	URS5S5 U"5nSHIupgURURU5USS9 URURU*5S	U-
SS9 MK U"SS
5nURURR5 URS5 SSS5 UR	UR[S55S
5 UR	UR[S55S	5 UR[R"UR[S5555 gs snf!,(df   N�=f)Nr�r�r
r�r))r}r)r�gqZ� �?)r,g��E_A�?)g�Q���?gGɫs��?)g��(\��?g؞Y���?)g��Q��?g���9#�?)gH�z�G�?g&S���?)r�g�MbX9�?)g���Q��?gT㥛� �?)g�������?g�?�?)gffffff@g_�x�Z�?)g��Q�@g��#0��?)g)\��(@gu<f�2��?)gףp=
�@gVe����?)gH�z�G@g9���?r�rbrrr�r�r}r�r�)r�r�r�r�rHr r�rrr�rIrnr�r�rr)	rLr�r,r�cdfsr��z�cum_probr�s	         r�test_cdf�TestNormalDist.test_cdf�s����[�[�+�+�
��s�B���"'��3�-�0�-�Q���a��-��0�����S��t�_�-��w�7�����v�d�|�,�������s��T�*�
�L���K�A�
�"�"�1�5�5��8�X�a�"�@��"�"�1�5�5�!��9�c�H�n�Q�"�G��
�s�A���
�
�
�t�{�{�:�:�
;�
�E�E�"�I�<�	
������u�V�}�-�s�3�������u�U�|�,�c�2�����
�
�1�5�5��u��#6�7�8��31�(<�
;�s�G$�8G)�)
G7rc	�Z�URRnU"SS5nURURS5UR5 U"5nSSSS.nUR5HgupV[
USS	9HTupxUS
U*--n	URURU	5*USS9 S
U	-
n	URURU	5USS9 MV Mi URU"SS5RS5S5 Sn
[SU
5H7n	X�-n	URURURU	55U	5 M9 [SS5HnnSU*-n	URURURU	55U	5 S
U	-
n	URURURU	55U	5 Mp [S5H2nURURURU55USS9 M4 URURR5 URS5 SSS5 URURR5 URS5 SSS5 URURR5 URS
5 SSS5 URURR5 URS5 SSS5 U"SS5nURURS5S5 UR[R"UR[S5555 g!,(df   GN4=f!,(df   GN=f!,(df   N�=f!,(df   N�=f)Nr�r�r)
r}gR���Q�?g�S㥛@g���S
@gT㥛� @g^�I�@g� �rh�@g+��N@g��C��@gV-��o@)
g� �rh��?g\��(\�?g�~j�t@g+��@g�MbX9@g�(\�B@g��v��@g����@g��Sc@g�K7�A�@)
gP��n��?g�S㥛@g���Q�@g��n��
@g��(\@gP��n@g�����@g��� �r@gˡE��@g�l�q@)rr�rr
)�startrr�rbrrur
g��>���?g���E@i�3r�r�r�r}r+g�������?rr�)r�r�rH�inv_cdfr}r�rjrIr�r�rnr�r�rrr)rLr��iqr��ppr&�rowr�rr'rrns            r�test_inv_cdf�TestNormalDist.test_inv_cdf�s����[�[�+�+�
���R�
 ��������D�)�2�7�7�3�

�L��7�7�7�	8������I�D�#�C�q�1����4�S�D�>�)���&�&��	�	�!��}�a��&�B��!�G���&�&�q�y�y��|�Q�q�&�A�	2�$�	
���z�"�c�2�:�:�8�D�i�P�
���q�!��A�
�F�A��"�"�2�6�6�"�*�*�Q�-�#8�!�<���q�"��A�����A��"�"�2�6�6�"�*�*�Q�-�#8�!�<��a��A��"�"�2�6�6�"�*�*�Q�-�#8�!�<�	��s��A��"�"�2�:�:�b�f�f�Q�i�#8�!�A�"�F���
�
�t�{�{�:�:�
;��J�J�s�O�<�
�
�
�t�{�{�:�:�
;��J�J�t��<�
�
�
�t�{�{�:�:�
;��J�J�s�O�<�
�
�
�t�{�{�:�:�
;��J�J�s�O�<���Q�
��������C��#�.�	
����
�
�1�9�9�U�5�\�#:�;�<�<�
;��
;�
;��
;�
;��
;�
;�s0�(M'�'M9�&N�%N�'
M6�9
N�
N�
N*c
���URR5nS/4SS/4SSS/4S/SQ44H>up#URUS	9nUR[	S
[X45555 M@ g)Nr
rr}r�g�ǘ���ۿg�ǘ����?r�)g/�$���r}g/�$���?r�c3�P# �UHup[R"XSS9v� M g7f)rr�Nr�r�s   rr�0TestNormalDist.test_quantiles.<locals>.<genexpr>3s$��� ?�(=���!%���Q�6� B�(=�s�$&)r�r�r�r�r�rk)rLr�rr%r$s     r�test_quantiles�TestNormalDist.test_quantiles)s����K�K�"�"�$��
��G�
���J�
��&�!�"�
�&�'�	�K�A��[�[�1�[�%�F��O�O�C� ?�(+�H�(=� ?�?�
@�rc��URRnU"SS5U"SS5S4U"SS5U"SS5S44HFup#nURURU5USS9 URURU5USS9 MH SS	S
.SjnU"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"S
S54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS54U"SS5U"SS544HQup#URURU5U"X#5S	S9 URURU5U"X#5S	S9 MS U"5nUR	[
5 UR5 SSS5 UR	[
5 URXf5 SSS5 UR	[
5 URS5 SSS5 UR	URR5 URU"SS55 SSS5 UR	URR5 U"SS5RU5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nr}r�rgɎ�@���?gM-[닄�?r�rbi r�)r�r�c���[RnURUR-S-nU[URUR5-nXV-
nSU-U-n[U5V	s/sH	o�X�--PM n
n	[
[URU
55n[
[URU
55n[U"U5U"U55n
U"[[X�55U
-$s sn	f)z0Numerical integration cross-check for overlap() r�)
rr%r}r"rCr�rBr�r�r�)r,r�r�r�r%�center�widthr�r�rm�x_arr�xp�ypr"s              r�overlap_numeric�4TestNormalDist.test_overlap.<locals>.overlap_numericBs����9�9�D��f�f�q�v�v�o��,�F���A�G�G�Q�W�W�-�-�E��N�E��u��u�$�B�+0��<�8�<�a�Q�T�\�<�E�8��c�!�%�%��'�(�B��c�!�%�%��'�(�B���R��$�r�(�+�E���C��(�)�E�1�1��	9s�)C*r�rcrmr�r�r�r�i����r��r�rGgj�t��?g�~j�t�h?gj�t��?ga2U0*�3?g��MbX�?r
r)r�r�rI�overlaprnr'r�)rLr��X1�X2�published_resultr�r,s       r�test_overlap�TestNormalDist.test_overlap6s���[�[�+�+�
��C��%�z�#�s�';�W�E��C��%�z�#�s�';�W�E�)�$�B�$�
�"�"�2�:�:�b�>�3C�A�"�N��"�"�2�:�:�b�>�3C�A�"�N�)�,1�A�	2��C��%�z�#�s�';�<��C��%�z�#�s�';�<��C��%�z�#�s�';�<��B��"�J�r�3�$7�8��C��$�j��b�&9�:��D�"�%�z�#�r�':�;��D�"�%�z�$��';�<��C��$�j��b�&9�:��C��$�j��b�&9�:��C��$�j��b�&9�:��C��$�j��b�&9�:��E�5�)�:�e�U�+C�D��E�5�)�:�e�V�+D�E��E�5�)�:�e�U�+C�D�)�F�B�,
�"�"�2�:�:�b�>�?�2�3J�ST�"�U��"�"�2�:�:�b�>�?�2�3J�ST�"�U�/�4
�L��
�
�
�y�
)�
�I�I�K�*�
�
�
�y�
)�
�I�I�a�O�*�
�
�
�y�
)�
�I�I�d�O�*�
�
�
�t�{�{�:�:�
;�
�I�I�j��A�&�'�<�
�
�
�t�{�{�:�:�
;��q�!��$�$�Q�'�<�
;�*�
)��
)�
)��
)�
)��
;�
;��
;�
;�s<�0K4�L�
L�L'�L8�4
L�
L�
L$�'
L5�8
Mc�6�URRnU"SS5nURURS5S5 URURS5S5 URURS5S5 UR	[
5 UR5 SSS5 UR	[
5 URSS5 SSS5 UR	[
5 URS5 SSS5 UR	URR5 U"SS	5RS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nw=f!,(df   g=f)
Nr�r��gffffff@r_gffffff�r}r
r)r�r�rH�zscorernr'r�)rLr�r,s   r�test_zscore�TestNormalDist.test_zscoreus���[�[�+�+�
��s�B���������#���,�������"��t�,�������#���,�
�
�
�y�
)�
�H�H�J�*�
�
�
�y�
)�
�H�H�Q��N�*�
�
�
�y�
)�
�H�H�T�N�*�
�
�
�t�{�{�:�:�
;��q�!��#�#�C�(�<�
;�
*�
)��
)�
)��
)�
)��
;�
;�s0�E�E(�6E9�5F
�
E%�(
E6�9
F�

Fc�T�URRSS5nURURS5 URURS5 URUR
S5 URURS5 URURS5 g)Nr�r���)r�r�rHr}r�rkrCr�)rLr,s  r�test_properties�TestNormalDist.test_properties�s|���K�K�"�"�3��+���������%�������3�'��������%�������"�%�������S�)rc��URRnU"SS5nU"SS5nURX#-U"SS55 URX#-
U"SS55 g)Nr�r�rur��rlr)r�r�rH�rLr�r,r�s    r�'test_same_type_addition_and_subtraction�6TestNormalDist.test_same_type_addition_and_subtraction�s[���[�[�+�+�
��s�B����r�1��������
�3�� 3�4������
�2�r� 2�3rc��URRnU"SS5nSnURU7U"SS55 URU*U"SS55 URX#-U"SS55 URX2-U"SS55 URX#-
U"SS55 URX2-
U"SS55 URX#-U"SS	55 URX2-U"SS	55 URX#-U"SS
55 UR[5 X2- SSS5 g!,(df   g=f)Nr�r�r�r�r�r�i����rYr�r
)r�r�rHrnr')rLr�r,r-s    r�test_translation_and_scaling�+TestNormalDist.test_translation_and_scaling�s"���[�[�+�+�
��s�B��������!��Z��R�0�1����!��Z��b�1�2������
�3�� 3�4������
�3�� 3�4������
�2�r� 2�3������
�3�� 3�4������
�4�� 5�6������
�4�� 5�6������
�2�s� 3�4�
�
�
�y�
)�
�E�*�
)�
)�s�(D6�6
Ec���URRnU"SS5nU7nURX#5 URURUR5 URUR
UR
5 U*nURX#5 URURUR*5 URUR
UR
5 g)Nr�r�)r�r��assertIsNotrHr}rCr�s    r�test_unary_operations�$TestNormalDist.test_unary_operations�s����[�[�+�+�
��s�B���
�B����������������(�������!�'�'�*�
�B�������������!�&�&��)�������!�'�'�*rc��URRnU"5nU"SS5nU"5nU"SS5nU"SS5nU"SS5nURX#5 URX$5 URX55 URX65 URX75 "SS5nU"5n	URUR	U	5[
5 URX):HS5 URX�:HS5 "SSU5n
U
"S	S
S5nU"S	S
5nURX�5 "SS
5nU"S	S
5n
U"S	S
5nURX�5 g)Nrr�r�c��\rSrSrSrSrg)�'TestNormalDist.test_equality.<locals>.Ai�c��grwr6)rLr^s  r�__eq__�.TestNormalDist.test_equality.<locals>.A.__eq__�s��rr6N)r7r8r9r:r�r<r6rrrr��s��
rrr�c�(^�\rSrSrU4SjrSrU=r$)�5TestNormalDist.test_equality.<locals>.SizedNormalDisti�c�0>�[TU]X5 X0lgrq)rb�__init__r)rLrr�rras    �rr��>TestNormalDist.test_equality.<locals>.SizedNormalDist.__init__�s����� ��+��rr�)r7r8r9r:r�r<rhris@r�SizedNormalDistr��s
���
�
rr�r�r��9c��\rSrSrSrSrg)�3TestNormalDist.test_equality.<locals>.LognormalDisti�c��XlX lgrq�rr�)rLrr�s   rr��<TestNormalDist.test_equality.<locals>.LognormalDist.__init__�s����"�
rr�N)r7r8r9r:r�r<r6rr�
LognormalDistr��s��
#rr�)r�r�rgrHr��NotImplemented)rLr��nd1�nd2�nd3�nd4�nd5�nd6rrr��sr��lndr�s               r�
test_equality�TestNormalDist.test_equality�sL���[�[�+�+�
��l����A����l����A�����A�����A������C�%�����"�����"����C�%����C�%�	�	�
�C��������A���7������2�&������2�&�	�j�	�
�C��R�(����b�!������ �
	#�	#��C��$��
��R�
 �����B�$rc���URRSS5n[R"U5nURX5 [R"U5nURX5 g)N��B@��@)r�r��copyrH�deepcopy)rLr�r�rs    r�	test_copy�TestNormalDist.test_copy�sO��
�[�[�
#�
#�D�%�
0���i�i��m������!��m�m�B�������!rc	�H�URRSS5n[[RS-5HTnURUS9 [R"[R"XS95nURX5 SSS5 MV g!,(df   Mh=f)Nr
rr
)�proto)�protocol)	r�r�r��pickle�HIGHEST_PROTOCOLrv�loads�dumpsrH)rLr�r�pickleds    r�test_pickle�TestNormalDist.test_pickle�st��
�[�[�
#�
#�D�%�
0���6�2�2�Q�6�7�E����E��*� �,�,�v�|�|�B�'G�H��� � ��-�+�*�8�*�*�s�:B�
B!	c��URRnU"SS5U"SS5U"SS5U"SS5U"SS51nUR[U5S5 g)Nr�r�r�g.@r�r\r�)r�r�rHrg)rL�NDrs   r�test_hashability�TestNormalDist.test_hashability�sS��
�[�[�
#�
#��
��R�[�"�U�D�/�2�c�2�;��2�r�
�B�s�B�K�P������Q���#rc�r�URRSS5nUR[U5S5 g)Nr
rz NormalDist(mu=37.5, sigma=5.625))r�r�rHr�r�s  r�	test_repr�TestNormalDist.test_repr�s-��
�[�[�
#�
#�D�%�
0������b��#E�Frr6N)r7r8r9r:r�r�r�r�r�r�r�skip_if_pgo_taskr?r�r�r�r�r�r�r�r�rrrrrr<r6rrr�r�Qs���A�3�,3�**�,%9�N9�<
������u�%�?=�&��?=�B@�=(�~
)�*�4�� 
+�*%�X"�.�$�
Grr�c�$�\rSrSr\rSrSrSrg)�TestNormalDistPythoni�c�>�UR[RS'grF�r�rH�modulesr�s rr	�TestNormalDistPython.setUp����$(�K�K����L�!rc�2�[[RS'grF�r=rHr&r�s r�tearDown�TestNormalDistPython.tearDown����$.����L�!rr6N)	r7r8r9r:rJr�r	r+r<r6rrr#r#�s��
�F�0�/rr#rPc�$�\rSrSr\rSrSrSrg)�TestNormalDistCi�c�>�UR[RS'grFr%r�s rr	�TestNormalDistC.setUp
r(rc�2�[[RS'grFr*r�s rr+�TestNormalDistC.tearDown
r-rr6N)	r7r8r9r:rRr�r	r+r<r6rrr/r/�s��
�F�0�/rr/c���UR[R"55 [RS:Xa)UR[R"[
55 U$)z&Used for doctest/unittest integration.�short)�addTests�doctest�DocTestSuiterH�float_repr_styler=)�loader�tests�ignores   r�
load_testsr=
sA��	�N�N�7�'�'�)�*�
���w�&�
���w�+�+�J�7�8��Lr�__main__)r�gH�����z>)Wrr�r[�collections.abcrrVr7rrrr�rHrU�testr�test.supportrrrr�rr=r-rmrrr)r2r4�import_fresh_modulerJrRrrBrXr{r�r�r�r�rWrjrur�r�r�r�r�rrPr�r�r�rrr5r>rer{r�r�rrr#r.rir�r�r�r�r�rrrArPrxr�r/r;rpr�r#rVr/r=r7�mainr6rr�<module>rDsx����
��������
�
�
���9�������1��A���)���3�>
� 2)�t$	�$	�V�1�1�,�;H�/�K�
��0�0��8E��H��
U�(�#�#�
U�XF�h�'�'�XF�~)�x� � �)�;J�h�/�/�;J�|=B�8�,�,�=B�@,�X�.�.�,�>tE�X�.�.�tE�nK�h�/�/�K�8	G�H�-�-�	G�"%�(�+�+�%�ZC�(�#�#�C�,
�(�+�+�
�=8�X�&�&�=8�@1)��*�*�1)�h6�8�$�$�6�&a9��"�"�a9�H;-�(�#�#�;-�|&�(�#�#�&�<`/�`/�F'.�'.�T	#�)�+>�	#�7F�o�7F�t
?�_�
?�;K��;K�@9�(�9�(]>���.A�]>�@v(���6I�v(�r65��,�65�r
��*=�
�4�J� 3�4�64�Z�!4�4�6u@�
�u@�p:,���.A�:,�z,�H�%�%�,�A1��!�!�A1�L?:�.�?:�D)-�&��9L�)-�X,-�%��8K�,-�\'�#�_�'�2_k�h�'�'�_k�D'�"�O�'�8nM��)�)�nM�bjA�h���jA�Zf+�H�%�%�f+�R3�h�/�/�3�>oN�8�#4�#4�oN�b%6�8�,�,�%6�N_G�_G�J
/�8�,�,�n�/�
���\�#9�:�/�h�'�'��/�;�/���z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit